// 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"
#include "testsuite.h"
#pragma pack(1)
struct BFs0i_BFu0c_BFs0c_BFu0ll { signed int :0; unsigned char :0; signed char :0; unsigned long long :0; };
struct BFs0i_BFu0c_BFs0c_BFu0s { signed int :0; unsigned char :0; signed char :0; unsigned short :0; };
struct BFs0i_BFu0c_BFs0i { signed int :0; unsigned char :0; signed int :0; };
struct BFs0i_BFu0c_BFs0i_BFs0c { signed int :0; unsigned char :0; signed int :0; signed char :0; };
struct BFs0i_BFu0c_BFs0i_BFs0i { signed int :0; unsigned char :0; signed int :0; signed int :0; };
struct BFs0i_BFu0c_BFs0i_BFs0ll { signed int :0; unsigned char :0; signed int :0; signed long long :0; };
struct BFs0i_BFu0c_BFs0i_BFs0s { signed int :0; unsigned char :0; signed int :0; signed short :0; };
struct BFs0i_BFu0c_BFs0i_BFu0c { signed int :0; unsigned char :0; signed int :0; unsigned char :0; };
struct BFs0i_BFu0c_BFs0i_BFu0i { signed int :0; unsigned char :0; signed int :0; unsigned int :0; };
struct BFs0i_BFu0c_BFs0i_BFu0ll { signed int :0; unsigned char :0; signed int :0; unsigned long long :0; };
struct BFs0i_BFu0c_BFs0i_BFu0s { signed int :0; unsigned char :0; signed int :0; unsigned short :0; };
struct BFs0i_BFu0c_BFs0ll { signed int :0; unsigned char :0; signed long long :0; };
struct BFs0i_BFu0c_BFs0ll_BFs0c { signed int :0; unsigned char :0; signed long long :0; signed char :0; };
struct BFs0i_BFu0c_BFs0ll_BFs0i { signed int :0; unsigned char :0; signed long long :0; signed int :0; };
struct BFs0i_BFu0c_BFs0ll_BFs0ll { signed int :0; unsigned char :0; signed long long :0; signed long long :0; };
struct BFs0i_BFu0c_BFs0ll_BFs0s { signed int :0; unsigned char :0; signed long long :0; signed short :0; };
struct BFs0i_BFu0c_BFs0ll_BFu0c { signed int :0; unsigned char :0; signed long long :0; unsigned char :0; };
struct BFs0i_BFu0c_BFs0ll_BFu0i { signed int :0; unsigned char :0; signed long long :0; unsigned int :0; };
struct BFs0i_BFu0c_BFs0ll_BFu0ll { signed int :0; unsigned char :0; signed long long :0; unsigned long long :0; };
struct BFs0i_BFu0c_BFs0ll_BFu0s { signed int :0; unsigned char :0; signed long long :0; unsigned short :0; };
struct BFs0i_BFu0c_BFs0s { signed int :0; unsigned char :0; signed short :0; };
struct BFs0i_BFu0c_BFs0s_BFs0c { signed int :0; unsigned char :0; signed short :0; signed char :0; };
struct BFs0i_BFu0c_BFs0s_BFs0i { signed int :0; unsigned char :0; signed short :0; signed int :0; };
struct BFs0i_BFu0c_BFs0s_BFs0ll { signed int :0; unsigned char :0; signed short :0; signed long long :0; };
struct BFs0i_BFu0c_BFs0s_BFs0s { signed int :0; unsigned char :0; signed short :0; signed short :0; };
struct BFs0i_BFu0c_BFs0s_BFu0c { signed int :0; unsigned char :0; signed short :0; unsigned char :0; };
struct BFs0i_BFu0c_BFs0s_BFu0i { signed int :0; unsigned char :0; signed short :0; unsigned int :0; };
struct BFs0i_BFu0c_BFs0s_BFu0ll { signed int :0; unsigned char :0; signed short :0; unsigned long long :0; };
struct BFs0i_BFu0c_BFs0s_BFu0s { signed int :0; unsigned char :0; signed short :0; unsigned short :0; };
struct BFs0i_BFu0c_BFu0c { signed int :0; unsigned char :0; unsigned char :0; };
struct BFs0i_BFu0c_BFu0c_BFs0c { signed int :0; unsigned char :0; unsigned char :0; signed char :0; };
struct BFs0i_BFu0c_BFu0c_BFs0i { signed int :0; unsigned char :0; unsigned char :0; signed int :0; };
struct BFs0i_BFu0c_BFu0c_BFs0ll { signed int :0; unsigned char :0; unsigned char :0; signed long long :0; };
struct BFs0i_BFu0c_BFu0c_BFs0s { signed int :0; unsigned char :0; unsigned char :0; signed short :0; };
struct BFs0i_BFu0c_BFu0c_BFu0c { signed int :0; unsigned char :0; unsigned char :0; unsigned char :0; };
struct BFs0i_BFu0c_BFu0c_BFu0i { signed int :0; unsigned char :0; unsigned char :0; unsigned int :0; };
struct BFs0i_BFu0c_BFu0c_BFu0ll { signed int :0; unsigned char :0; unsigned char :0; unsigned long long :0; };
struct BFs0i_BFu0c_BFu0c_BFu0s { signed int :0; unsigned char :0; unsigned char :0; unsigned short :0; };
struct BFs0i_BFu0c_BFu0i { signed int :0; unsigned char :0; unsigned int :0; };
struct BFs0i_BFu0c_BFu0i_BFs0c { signed int :0; unsigned char :0; unsigned int :0; signed char :0; };
struct BFs0i_BFu0c_BFu0i_BFs0i { signed int :0; unsigned char :0; unsigned int :0; signed int :0; };
struct BFs0i_BFu0c_BFu0i_BFs0ll { signed int :0; unsigned char :0; unsigned int :0; signed long long :0; };
struct BFs0i_BFu0c_BFu0i_BFs0s { signed int :0; unsigned char :0; unsigned int :0; signed short :0; };
struct BFs0i_BFu0c_BFu0i_BFu0c { signed int :0; unsigned char :0; unsigned int :0; unsigned char :0; };
struct BFs0i_BFu0c_BFu0i_BFu0i { signed int :0; unsigned char :0; unsigned int :0; unsigned int :0; };
struct BFs0i_BFu0c_BFu0i_BFu0ll { signed int :0; unsigned char :0; unsigned int :0; unsigned long long :0; };
struct BFs0i_BFu0c_BFu0i_BFu0s { signed int :0; unsigned char :0; unsigned int :0; unsigned short :0; };
struct BFs0i_BFu0c_BFu0ll { signed int :0; unsigned char :0; unsigned long long :0; };
struct BFs0i_BFu0c_BFu0ll_BFs0c { signed int :0; unsigned char :0; unsigned long long :0; signed char :0; };
struct BFs0i_BFu0c_BFu0ll_BFs0i { signed int :0; unsigned char :0; unsigned long long :0; signed int :0; };
struct BFs0i_BFu0c_BFu0ll_BFs0ll { signed int :0; unsigned char :0; unsigned long long :0; signed long long :0; };
struct BFs0i_BFu0c_BFu0ll_BFs0s { signed int :0; unsigned char :0; unsigned long long :0; signed short :0; };
struct BFs0i_BFu0c_BFu0ll_BFu0c { signed int :0; unsigned char :0; unsigned long long :0; unsigned char :0; };
struct BFs0i_BFu0c_BFu0ll_BFu0i { signed int :0; unsigned char :0; unsigned long long :0; unsigned int :0; };
struct BFs0i_BFu0c_BFu0ll_BFu0ll { signed int :0; unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct BFs0i_BFu0c_BFu0ll_BFu0s { signed int :0; unsigned char :0; unsigned long long :0; unsigned short :0; };
struct BFs0i_BFu0c_BFu0s { signed int :0; unsigned char :0; unsigned short :0; };
struct BFs0i_BFu0c_BFu0s_BFs0c { signed int :0; unsigned char :0; unsigned short :0; signed char :0; };
struct BFs0i_BFu0c_BFu0s_BFs0i { signed int :0; unsigned char :0; unsigned short :0; signed int :0; };
struct BFs0i_BFu0c_BFu0s_BFs0ll { signed int :0; unsigned char :0; unsigned short :0; signed long long :0; };
struct BFs0i_BFu0c_BFu0s_BFs0s { signed int :0; unsigned char :0; unsigned short :0; signed short :0; };
struct BFs0i_BFu0c_BFu0s_BFu0c { signed int :0; unsigned char :0; unsigned short :0; unsigned char :0; };
struct BFs0i_BFu0c_BFu0s_BFu0i { signed int :0; unsigned char :0; unsigned short :0; unsigned int :0; };
struct BFs0i_BFu0c_BFu0s_BFu0ll { signed int :0; unsigned char :0; unsigned short :0; unsigned long long :0; };
struct BFs0i_BFu0c_BFu0s_BFu0s { signed int :0; unsigned char :0; unsigned short :0; unsigned short :0; };
struct BFs0i_BFu0i { signed int :0; unsigned int :0; };
struct BFs0i_BFu0i_BFs0c { signed int :0; unsigned int :0; signed char :0; };
struct BFs0i_BFu0i_BFs0c_BFs0c { signed int :0; unsigned int :0; signed char :0; signed char :0; };
struct BFs0i_BFu0i_BFs0c_BFs0i { signed int :0; unsigned int :0; signed char :0; signed int :0; };
struct BFs0i_BFu0i_BFs0c_BFs0ll { signed int :0; unsigned int :0; signed char :0; signed long long :0; };
struct BFs0i_BFu0i_BFs0c_BFs0s { signed int :0; unsigned int :0; signed char :0; signed short :0; };
struct BFs0i_BFu0i_BFs0c_BFu0c { signed int :0; unsigned int :0; signed char :0; unsigned char :0; };
struct BFs0i_BFu0i_BFs0c_BFu0i { signed int :0; unsigned int :0; signed char :0; unsigned int :0; };
struct BFs0i_BFu0i_BFs0c_BFu0ll { signed int :0; unsigned int :0; signed char :0; unsigned long long :0; };
struct BFs0i_BFu0i_BFs0c_BFu0s { signed int :0; unsigned int :0; signed char :0; unsigned short :0; };
struct BFs0i_BFu0i_BFs0i { signed int :0; unsigned int :0; signed int :0; };
struct BFs0i_BFu0i_BFs0i_BFs0c { signed int :0; unsigned int :0; signed int :0; signed char :0; };
struct BFs0i_BFu0i_BFs0i_BFs0i { signed int :0; unsigned int :0; signed int :0; signed int :0; };
struct BFs0i_BFu0i_BFs0i_BFs0ll { signed int :0; unsigned int :0; signed int :0; signed long long :0; };
struct BFs0i_BFu0i_BFs0i_BFs0s { signed int :0; unsigned int :0; signed int :0; signed short :0; };
struct BFs0i_BFu0i_BFs0i_BFu0c { signed int :0; unsigned int :0; signed int :0; unsigned char :0; };
struct BFs0i_BFu0i_BFs0i_BFu0i { signed int :0; unsigned int :0; signed int :0; unsigned int :0; };
struct BFs0i_BFu0i_BFs0i_BFu0ll { signed int :0; unsigned int :0; signed int :0; unsigned long long :0; };
struct BFs0i_BFu0i_BFs0i_BFu0s { signed int :0; unsigned int :0; signed int :0; unsigned short :0; };
struct BFs0i_BFu0i_BFs0ll { signed int :0; unsigned int :0; signed long long :0; };
struct BFs0i_BFu0i_BFs0ll_BFs0c { signed int :0; unsigned int :0; signed long long :0; signed char :0; };
struct BFs0i_BFu0i_BFs0ll_BFs0i { signed int :0; unsigned int :0; signed long long :0; signed int :0; };
struct BFs0i_BFu0i_BFs0ll_BFs0ll { signed int :0; unsigned int :0; signed long long :0; signed long long :0; };
struct BFs0i_BFu0i_BFs0ll_BFs0s { signed int :0; unsigned int :0; signed long long :0; signed short :0; };
struct BFs0i_BFu0i_BFs0ll_BFu0c { signed int :0; unsigned int :0; signed long long :0; unsigned char :0; };
struct BFs0i_BFu0i_BFs0ll_BFu0i { signed int :0; unsigned int :0; signed long long :0; unsigned int :0; };
struct BFs0i_BFu0i_BFs0ll_BFu0ll { signed int :0; unsigned int :0; signed long long :0; unsigned long long :0; };
struct BFs0i_BFu0i_BFs0ll_BFu0s { signed int :0; unsigned int :0; signed long long :0; unsigned short :0; };
struct BFs0i_BFu0i_BFs0s { signed int :0; unsigned int :0; signed short :0; };
struct BFs0i_BFu0i_BFs0s_BFs0c { signed int :0; unsigned int :0; signed short :0; signed char :0; };
struct BFs0i_BFu0i_BFs0s_BFs0i { signed int :0; unsigned int :0; signed short :0; signed int :0; };
struct BFs0i_BFu0i_BFs0s_BFs0ll { signed int :0; unsigned int :0; signed short :0; signed long long :0; };
struct BFs0i_BFu0i_BFs0s_BFs0s { signed int :0; unsigned int :0; signed short :0; signed short :0; };
struct BFs0i_BFu0i_BFs0s_BFu0c { signed int :0; unsigned int :0; signed short :0; unsigned char :0; };
struct BFs0i_BFu0i_BFs0s_BFu0i { signed int :0; unsigned int :0; signed short :0; unsigned int :0; };
struct BFs0i_BFu0i_BFs0s_BFu0ll { signed int :0; unsigned int :0; signed short :0; unsigned long long :0; };
struct BFs0i_BFu0i_BFs0s_BFu0s { signed int :0; unsigned int :0; signed short :0; unsigned short :0; };
struct BFs0i_BFu0i_BFu0c { signed int :0; unsigned int :0; unsigned char :0; };
struct BFs0i_BFu0i_BFu0c_BFs0c { signed int :0; unsigned int :0; unsigned char :0; signed char :0; };
struct BFs0i_BFu0i_BFu0c_BFs0i { signed int :0; unsigned int :0; unsigned char :0; signed int :0; };
struct BFs0i_BFu0i_BFu0c_BFs0ll { signed int :0; unsigned int :0; unsigned char :0; signed long long :0; };
struct BFs0i_BFu0i_BFu0c_BFs0s { signed int :0; unsigned int :0; unsigned char :0; signed short :0; };
struct BFs0i_BFu0i_BFu0c_BFu0c { signed int :0; unsigned int :0; unsigned char :0; unsigned char :0; };
struct BFs0i_BFu0i_BFu0c_BFu0i { signed int :0; unsigned int :0; unsigned char :0; unsigned int :0; };
struct BFs0i_BFu0i_BFu0c_BFu0ll { signed int :0; unsigned int :0; unsigned char :0; unsigned long long :0; };
struct BFs0i_BFu0i_BFu0c_BFu0s { signed int :0; unsigned int :0; unsigned char :0; unsigned short :0; };
struct BFs0i_BFu0i_BFu0i { signed int :0; unsigned int :0; unsigned int :0; };
struct BFs0i_BFu0i_BFu0i_BFs0c { signed int :0; unsigned int :0; unsigned int :0; signed char :0; };
struct BFs0i_BFu0i_BFu0i_BFs0i { signed int :0; unsigned int :0; unsigned int :0; signed int :0; };
struct BFs0i_BFu0i_BFu0i_BFs0ll { signed int :0; unsigned int :0; unsigned int :0; signed long long :0; };
struct BFs0i_BFu0i_BFu0i_BFs0s { signed int :0; unsigned int :0; unsigned int :0; signed short :0; };
struct BFs0i_BFu0i_BFu0i_BFu0c { signed int :0; unsigned int :0; unsigned int :0; unsigned char :0; };
struct BFs0i_BFu0i_BFu0i_BFu0i { signed int :0; unsigned int :0; unsigned int :0; unsigned int :0; };
struct BFs0i_BFu0i_BFu0i_BFu0ll { signed int :0; unsigned int :0; unsigned int :0; unsigned long long :0; };
struct BFs0i_BFu0i_BFu0i_BFu0s { signed int :0; unsigned int :0; unsigned int :0; unsigned short :0; };
struct BFs0i_BFu0i_BFu0ll { signed int :0; unsigned int :0; unsigned long long :0; };
struct BFs0i_BFu0i_BFu0ll_BFs0c { signed int :0; unsigned int :0; unsigned long long :0; signed char :0; };
struct BFs0i_BFu0i_BFu0ll_BFs0i { signed int :0; unsigned int :0; unsigned long long :0; signed int :0; };
struct BFs0i_BFu0i_BFu0ll_BFs0ll { signed int :0; unsigned int :0; unsigned long long :0; signed long long :0; };
struct BFs0i_BFu0i_BFu0ll_BFs0s { signed int :0; unsigned int :0; unsigned long long :0; signed short :0; };
struct BFs0i_BFu0i_BFu0ll_BFu0c { signed int :0; unsigned int :0; unsigned long long :0; unsigned char :0; };
struct BFs0i_BFu0i_BFu0ll_BFu0i { signed int :0; unsigned int :0; unsigned long long :0; unsigned int :0; };
struct BFs0i_BFu0i_BFu0ll_BFu0ll { signed int :0; unsigned int :0; unsigned long long :0; unsigned long long :0; };
struct BFs0i_BFu0i_BFu0ll_BFu0s { signed int :0; unsigned int :0; unsigned long long :0; unsigned short :0; };
struct BFs0i_BFu0i_BFu0s { signed int :0; unsigned int :0; unsigned short :0; };
struct BFs0i_BFu0i_BFu0s_BFs0c { signed int :0; unsigned int :0; unsigned short :0; signed char :0; };
struct BFs0i_BFu0i_BFu0s_BFs0i { signed int :0; unsigned int :0; unsigned short :0; signed int :0; };
struct BFs0i_BFu0i_BFu0s_BFs0ll { signed int :0; unsigned int :0; unsigned short :0; signed long long :0; };
struct BFs0i_BFu0i_BFu0s_BFs0s { signed int :0; unsigned int :0; unsigned short :0; signed short :0; };
struct BFs0i_BFu0i_BFu0s_BFu0c { signed int :0; unsigned int :0; unsigned short :0; unsigned char :0; };
struct BFs0i_BFu0i_BFu0s_BFu0i { signed int :0; unsigned int :0; unsigned short :0; unsigned int :0; };
struct BFs0i_BFu0i_BFu0s_BFu0ll { signed int :0; unsigned int :0; unsigned short :0; unsigned long long :0; };
struct BFs0i_BFu0i_BFu0s_BFu0s { signed int :0; unsigned int :0; unsigned short :0; unsigned short :0; };
struct BFs0i_BFu0ll { signed int :0; unsigned long long :0; };
struct BFs0i_BFu0ll_BFs0c { signed int :0; unsigned long long :0; signed char :0; };
struct BFs0i_BFu0ll_BFs0c_BFs0c { signed int :0; unsigned long long :0; signed char :0; signed char :0; };
struct BFs0i_BFu0ll_BFs0c_BFs0i { signed int :0; unsigned long long :0; signed char :0; signed int :0; };
struct BFs0i_BFu0ll_BFs0c_BFs0ll { signed int :0; unsigned long long :0; signed char :0; signed long long :0; };
struct BFs0i_BFu0ll_BFs0c_BFs0s { signed int :0; unsigned long long :0; signed char :0; signed short :0; };
struct BFs0i_BFu0ll_BFs0c_BFu0c { signed int :0; unsigned long long :0; signed char :0; unsigned char :0; };
struct BFs0i_BFu0ll_BFs0c_BFu0i { signed int :0; unsigned long long :0; signed char :0; unsigned int :0; };
struct BFs0i_BFu0ll_BFs0c_BFu0ll { signed int :0; unsigned long long :0; signed char :0; unsigned long long :0; };
struct BFs0i_BFu0ll_BFs0c_BFu0s { signed int :0; unsigned long long :0; signed char :0; unsigned short :0; };
struct BFs0i_BFu0ll_BFs0i { signed int :0; unsigned long long :0; signed int :0; };
struct BFs0i_BFu0ll_BFs0i_BFs0c { signed int :0; unsigned long long :0; signed int :0; signed char :0; };
struct BFs0i_BFu0ll_BFs0i_BFs0i { signed int :0; unsigned long long :0; signed int :0; signed int :0; };
struct BFs0i_BFu0ll_BFs0i_BFs0ll { signed int :0; unsigned long long :0; signed int :0; signed long long :0; };
struct BFs0i_BFu0ll_BFs0i_BFs0s { signed int :0; unsigned long long :0; signed int :0; signed short :0; };
struct BFs0i_BFu0ll_BFs0i_BFu0c { signed int :0; unsigned long long :0; signed int :0; unsigned char :0; };
struct BFs0i_BFu0ll_BFs0i_BFu0i { signed int :0; unsigned long long :0; signed int :0; unsigned int :0; };
struct BFs0i_BFu0ll_BFs0i_BFu0ll { signed int :0; unsigned long long :0; signed int :0; unsigned long long :0; };
struct BFs0i_BFu0ll_BFs0i_BFu0s { signed int :0; unsigned long long :0; signed int :0; unsigned short :0; };
struct BFs0i_BFu0ll_BFs0ll { signed int :0; unsigned long long :0; signed long long :0; };
struct BFs0i_BFu0ll_BFs0ll_BFs0c { signed int :0; unsigned long long :0; signed long long :0; signed char :0; };
struct BFs0i_BFu0ll_BFs0ll_BFs0i { signed int :0; unsigned long long :0; signed long long :0; signed int :0; };
struct BFs0i_BFu0ll_BFs0ll_BFs0ll { signed int :0; unsigned long long :0; signed long long :0; signed long long :0; };
struct BFs0i_BFu0ll_BFs0ll_BFs0s { signed int :0; unsigned long long :0; signed long long :0; signed short :0; };
struct BFs0i_BFu0ll_BFs0ll_BFu0c { signed int :0; unsigned long long :0; signed long long :0; unsigned char :0; };
struct BFs0i_BFu0ll_BFs0ll_BFu0i { signed int :0; unsigned long long :0; signed long long :0; unsigned int :0; };
struct BFs0i_BFu0ll_BFs0ll_BFu0ll { signed int :0; unsigned long long :0; signed long long :0; unsigned long long :0; };
struct BFs0i_BFu0ll_BFs0ll_BFu0s { signed int :0; unsigned long long :0; signed long long :0; unsigned short :0; };
struct BFs0i_BFu0ll_BFs0s { signed int :0; unsigned long long :0; signed short :0; };
struct BFs0i_BFu0ll_BFs0s_BFs0c { signed int :0; unsigned long long :0; signed short :0; signed char :0; };
struct BFs0i_BFu0ll_BFs0s_BFs0i { signed int :0; unsigned long long :0; signed short :0; signed int :0; };
struct BFs0i_BFu0ll_BFs0s_BFs0ll { signed int :0; unsigned long long :0; signed short :0; signed long long :0; };
struct BFs0i_BFu0ll_BFs0s_BFs0s { signed int :0; unsigned long long :0; signed short :0; signed short :0; };
struct BFs0i_BFu0ll_BFs0s_BFu0c { signed int :0; unsigned long long :0; signed short :0; unsigned char :0; };
struct BFs0i_BFu0ll_BFs0s_BFu0i { signed int :0; unsigned long long :0; signed short :0; unsigned int :0; };
struct BFs0i_BFu0ll_BFs0s_BFu0ll { signed int :0; unsigned long long :0; signed short :0; unsigned long long :0; };
struct BFs0i_BFu0ll_BFs0s_BFu0s { signed int :0; unsigned long long :0; signed short :0; unsigned short :0; };
struct BFs0i_BFu0ll_BFu0c { signed int :0; unsigned long long :0; unsigned char :0; };
struct BFs0i_BFu0ll_BFu0c_BFs0c { signed int :0; unsigned long long :0; unsigned char :0; signed char :0; };
struct BFs0i_BFu0ll_BFu0c_BFs0i { signed int :0; unsigned long long :0; unsigned char :0; signed int :0; };
struct BFs0i_BFu0ll_BFu0c_BFs0ll { signed int :0; unsigned long long :0; unsigned char :0; signed long long :0; };
struct BFs0i_BFu0ll_BFu0c_BFs0s { signed int :0; unsigned long long :0; unsigned char :0; signed short :0; };
struct BFs0i_BFu0ll_BFu0c_BFu0c { signed int :0; unsigned long long :0; unsigned char :0; unsigned char :0; };
struct BFs0i_BFu0ll_BFu0c_BFu0i { signed int :0; unsigned long long :0; unsigned char :0; unsigned int :0; };
struct BFs0i_BFu0ll_BFu0c_BFu0ll { signed int :0; unsigned long long :0; unsigned char :0; unsigned long long :0; };
struct BFs0i_BFu0ll_BFu0c_BFu0s { signed int :0; unsigned long long :0; unsigned char :0; unsigned short :0; };
struct BFs0i_BFu0ll_BFu0i { signed int :0; unsigned long long :0; unsigned int :0; };
struct BFs0i_BFu0ll_BFu0i_BFs0c { signed int :0; unsigned long long :0; unsigned int :0; signed char :0; };
struct BFs0i_BFu0ll_BFu0i_BFs0i { signed int :0; unsigned long long :0; unsigned int :0; signed int :0; };
struct BFs0i_BFu0ll_BFu0i_BFs0ll { signed int :0; unsigned long long :0; unsigned int :0; signed long long :0; };
struct BFs0i_BFu0ll_BFu0i_BFs0s { signed int :0; unsigned long long :0; unsigned int :0; signed short :0; };
struct BFs0i_BFu0ll_BFu0i_BFu0c { signed int :0; unsigned long long :0; unsigned int :0; unsigned char :0; };
struct BFs0i_BFu0ll_BFu0i_BFu0i { signed int :0; unsigned long long :0; unsigned int :0; unsigned int :0; };
struct BFs0i_BFu0ll_BFu0i_BFu0ll { signed int :0; unsigned long long :0; unsigned int :0; unsigned long long :0; };
struct BFs0i_BFu0ll_BFu0i_BFu0s { signed int :0; unsigned long long :0; unsigned int :0; unsigned short :0; };
struct BFs0i_BFu0ll_BFu0ll { signed int :0; unsigned long long :0; unsigned long long :0; };
struct BFs0i_BFu0ll_BFu0ll_BFs0c { signed int :0; unsigned long long :0; unsigned long long :0; signed char :0; };
struct BFs0i_BFu0ll_BFu0ll_BFs0i { signed int :0; unsigned long long :0; unsigned long long :0; signed int :0; };
struct BFs0i_BFu0ll_BFu0ll_BFs0ll { signed int :0; unsigned long long :0; unsigned long long :0; signed long long :0; };
struct BFs0i_BFu0ll_BFu0ll_BFs0s { signed int :0; unsigned long long :0; unsigned long long :0; signed short :0; };
struct BFs0i_BFu0ll_BFu0ll_BFu0c { signed int :0; unsigned long long :0; unsigned long long :0; unsigned char :0; };
struct BFs0i_BFu0ll_BFu0ll_BFu0i { signed int :0; unsigned long long :0; unsigned long long :0; unsigned int :0; };
struct BFs0i_BFu0ll_BFu0ll_BFu0ll { signed int :0; unsigned long long :0; unsigned long long :0; unsigned long long :0; };
struct BFs0i_BFu0ll_BFu0ll_BFu0s { signed int :0; unsigned long long :0; unsigned long long :0; unsigned short :0; };
struct BFs0i_BFu0ll_BFu0s { signed int :0; unsigned long long :0; unsigned short :0; };
struct BFs0i_BFu0ll_BFu0s_BFs0c { signed int :0; unsigned long long :0; unsigned short :0; signed char :0; };
struct BFs0i_BFu0ll_BFu0s_BFs0i { signed int :0; unsigned long long :0; unsigned short :0; signed int :0; };
struct BFs0i_BFu0ll_BFu0s_BFs0ll { signed int :0; unsigned long long :0; unsigned short :0; signed long long :0; };
struct BFs0i_BFu0ll_BFu0s_BFs0s { signed int :0; unsigned long long :0; unsigned short :0; signed short :0; };
struct BFs0i_BFu0ll_BFu0s_BFu0c { signed int :0; unsigned long long :0; unsigned short :0; unsigned char :0; };
struct BFs0i_BFu0ll_BFu0s_BFu0i { signed int :0; unsigned long long :0; unsigned short :0; unsigned int :0; };
struct BFs0i_BFu0ll_BFu0s_BFu0ll { signed int :0; unsigned long long :0; unsigned short :0; unsigned long long :0; };
struct BFs0i_BFu0ll_BFu0s_BFu0s { signed int :0; unsigned long long :0; unsigned short :0; unsigned short :0; };
struct BFs0i_BFu0s { signed int :0; unsigned short :0; };
struct BFs0i_BFu0s_BFs0c { signed int :0; unsigned short :0; signed char :0; };
struct BFs0i_BFu0s_BFs0c_BFs0c { signed int :0; unsigned short :0; signed char :0; signed char :0; };
struct BFs0i_BFu0s_BFs0c_BFs0i { signed int :0; unsigned short :0; signed char :0; signed int :0; };
struct BFs0i_BFu0s_BFs0c_BFs0ll { signed int :0; unsigned short :0; signed char :0; signed long long :0; };
struct BFs0i_BFu0s_BFs0c_BFs0s { signed int :0; unsigned short :0; signed char :0; signed short :0; };
struct BFs0i_BFu0s_BFs0c_BFu0c { signed int :0; unsigned short :0; signed char :0; unsigned char :0; };
struct BFs0i_BFu0s_BFs0c_BFu0i { signed int :0; unsigned short :0; signed char :0; unsigned int :0; };
struct BFs0i_BFu0s_BFs0c_BFu0ll { signed int :0; unsigned short :0; signed char :0; unsigned long long :0; };
struct BFs0i_BFu0s_BFs0c_BFu0s { signed int :0; unsigned short :0; signed char :0; unsigned short :0; };
struct BFs0i_BFu0s_BFs0i { signed int :0; unsigned short :0; signed int :0; };
struct BFs0i_BFu0s_BFs0i_BFs0c { signed int :0; unsigned short :0; signed int :0; signed char :0; };
struct BFs0i_BFu0s_BFs0i_BFs0i { signed int :0; unsigned short :0; signed int :0; signed int :0; };
struct BFs0i_BFu0s_BFs0i_BFs0ll { signed int :0; unsigned short :0; signed int :0; signed long long :0; };
struct BFs0i_BFu0s_BFs0i_BFs0s { signed int :0; unsigned short :0; signed int :0; signed short :0; };
struct BFs0i_BFu0s_BFs0i_BFu0c { signed int :0; unsigned short :0; signed int :0; unsigned char :0; };
struct BFs0i_BFu0s_BFs0i_BFu0i { signed int :0; unsigned short :0; signed int :0; unsigned int :0; };
struct BFs0i_BFu0s_BFs0i_BFu0ll { signed int :0; unsigned short :0; signed int :0; unsigned long long :0; };
struct BFs0i_BFu0s_BFs0i_BFu0s { signed int :0; unsigned short :0; signed int :0; unsigned short :0; };
struct BFs0i_BFu0s_BFs0ll { signed int :0; unsigned short :0; signed long long :0; };
struct BFs0i_BFu0s_BFs0ll_BFs0c { signed int :0; unsigned short :0; signed long long :0; signed char :0; };
struct BFs0i_BFu0s_BFs0ll_BFs0i { signed int :0; unsigned short :0; signed long long :0; signed int :0; };
struct BFs0i_BFu0s_BFs0ll_BFs0ll { signed int :0; unsigned short :0; signed long long :0; signed long long :0; };
struct BFs0i_BFu0s_BFs0ll_BFs0s { signed int :0; unsigned short :0; signed long long :0; signed short :0; };
struct BFs0i_BFu0s_BFs0ll_BFu0c { signed int :0; unsigned short :0; signed long long :0; unsigned char :0; };
struct BFs0i_BFu0s_BFs0ll_BFu0i { signed int :0; unsigned short :0; signed long long :0; unsigned int :0; };
struct BFs0i_BFu0s_BFs0ll_BFu0ll { signed int :0; unsigned short :0; signed long long :0; unsigned long long :0; };
struct BFs0i_BFu0s_BFs0ll_BFu0s { signed int :0; unsigned short :0; signed long long :0; unsigned short :0; };
struct BFs0i_BFu0s_BFs0s { signed int :0; unsigned short :0; signed short :0; };
struct BFs0i_BFu0s_BFs0s_BFs0c { signed int :0; unsigned short :0; signed short :0; signed char :0; };
struct BFs0i_BFu0s_BFs0s_BFs0i { signed int :0; unsigned short :0; signed short :0; signed int :0; };
struct BFs0i_BFu0s_BFs0s_BFs0ll { signed int :0; unsigned short :0; signed short :0; signed long long :0; };
struct BFs0i_BFu0s_BFs0s_BFs0s { signed int :0; unsigned short :0; signed short :0; signed short :0; };
struct BFs0i_BFu0s_BFs0s_BFu0c { signed int :0; unsigned short :0; signed short :0; unsigned char :0; };
struct BFs0i_BFu0s_BFs0s_BFu0i { signed int :0; unsigned short :0; signed short :0; unsigned int :0; };
struct BFs0i_BFu0s_BFs0s_BFu0ll { signed int :0; unsigned short :0; signed short :0; unsigned long long :0; };
struct BFs0i_BFu0s_BFs0s_BFu0s { signed int :0; unsigned short :0; signed short :0; unsigned short :0; };
struct BFs0i_BFu0s_BFu0c { signed int :0; unsigned short :0; unsigned char :0; };
struct BFs0i_BFu0s_BFu0c_BFs0c { signed int :0; unsigned short :0; unsigned char :0; signed char :0; };
struct BFs0i_BFu0s_BFu0c_BFs0i { signed int :0; unsigned short :0; unsigned char :0; signed int :0; };
struct BFs0i_BFu0s_BFu0c_BFs0ll { signed int :0; unsigned short :0; unsigned char :0; signed long long :0; };
struct BFs0i_BFu0s_BFu0c_BFs0s { signed int :0; unsigned short :0; unsigned char :0; signed short :0; };
struct BFs0i_BFu0s_BFu0c_BFu0c { signed int :0; unsigned short :0; unsigned char :0; unsigned char :0; };
struct BFs0i_BFu0s_BFu0c_BFu0i { signed int :0; unsigned short :0; unsigned char :0; unsigned int :0; };
struct BFs0i_BFu0s_BFu0c_BFu0ll { signed int :0; unsigned short :0; unsigned char :0; unsigned long long :0; };
struct BFs0i_BFu0s_BFu0c_BFu0s { signed int :0; unsigned short :0; unsigned char :0; unsigned short :0; };
struct BFs0i_BFu0s_BFu0i { signed int :0; unsigned short :0; unsigned int :0; };
struct BFs0i_BFu0s_BFu0i_BFs0c { signed int :0; unsigned short :0; unsigned int :0; signed char :0; };
struct BFs0i_BFu0s_BFu0i_BFs0i { signed int :0; unsigned short :0; unsigned int :0; signed int :0; };
struct BFs0i_BFu0s_BFu0i_BFs0ll { signed int :0; unsigned short :0; unsigned int :0; signed long long :0; };
struct BFs0i_BFu0s_BFu0i_BFs0s { signed int :0; unsigned short :0; unsigned int :0; signed short :0; };
struct BFs0i_BFu0s_BFu0i_BFu0c { signed int :0; unsigned short :0; unsigned int :0; unsigned char :0; };
struct BFs0i_BFu0s_BFu0i_BFu0i { signed int :0; unsigned short :0; unsigned int :0; unsigned int :0; };
struct BFs0i_BFu0s_BFu0i_BFu0ll { signed int :0; unsigned short :0; unsigned int :0; unsigned long long :0; };
struct BFs0i_BFu0s_BFu0i_BFu0s { signed int :0; unsigned short :0; unsigned int :0; unsigned short :0; };
struct BFs0i_BFu0s_BFu0ll { signed int :0; unsigned short :0; unsigned long long :0; };
struct BFs0i_BFu0s_BFu0ll_BFs0c { signed int :0; unsigned short :0; unsigned long long :0; signed char :0; };
struct BFs0i_BFu0s_BFu0ll_BFs0i { signed int :0; unsigned short :0; unsigned long long :0; signed int :0; };
struct BFs0i_BFu0s_BFu0ll_BFs0ll { signed int :0; unsigned short :0; unsigned long long :0; signed long long :0; };
struct BFs0i_BFu0s_BFu0ll_BFs0s { signed int :0; unsigned short :0; unsigned long long :0; signed short :0; };
struct BFs0i_BFu0s_BFu0ll_BFu0c { signed int :0; unsigned short :0; unsigned long long :0; unsigned char :0; };
struct BFs0i_BFu0s_BFu0ll_BFu0i { signed int :0; unsigned short :0; unsigned long long :0; unsigned int :0; };
struct BFs0i_BFu0s_BFu0ll_BFu0ll { signed int :0; unsigned short :0; unsigned long long :0; unsigned long long :0; };
struct BFs0i_BFu0s_BFu0ll_BFu0s { signed int :0; unsigned short :0; unsigned long long :0; unsigned short :0; };
struct BFs0i_BFu0s_BFu0s { signed int :0; unsigned short :0; unsigned short :0; };
struct BFs0i_BFu0s_BFu0s_BFs0c { signed int :0; unsigned short :0; unsigned short :0; signed char :0; };
struct BFs0i_BFu0s_BFu0s_BFs0i { signed int :0; unsigned short :0; unsigned short :0; signed int :0; };
struct BFs0i_BFu0s_BFu0s_BFs0ll { signed int :0; unsigned short :0; unsigned short :0; signed long long :0; };
struct BFs0i_BFu0s_BFu0s_BFs0s { signed int :0; unsigned short :0; unsigned short :0; signed short :0; };
struct BFs0i_BFu0s_BFu0s_BFu0c { signed int :0; unsigned short :0; unsigned short :0; unsigned char :0; };
struct BFs0i_BFu0s_BFu0s_BFu0i { signed int :0; unsigned short :0; unsigned short :0; unsigned int :0; };
struct BFs0i_BFu0s_BFu0s_BFu0ll { signed int :0; unsigned short :0; unsigned short :0; unsigned long long :0; };
struct BFs0i_BFu0s_BFu0s_BFu0s { signed int :0; unsigned short :0; unsigned short :0; unsigned short :0; };
struct BFs0ll_BFs0c { signed long long :0; signed char :0; };
struct BFs0ll_BFs0c_BFs0c { signed long long :0; signed char :0; signed char :0; };
struct BFs0ll_BFs0c_BFs0c_BFs0c { signed long long :0; signed char :0; signed char :0; signed char :0; };
struct BFs0ll_BFs0c_BFs0c_BFs0i { signed long long :0; signed char :0; signed char :0; signed int :0; };
struct BFs0ll_BFs0c_BFs0c_BFs0ll { signed long long :0; signed char :0; signed char :0; signed long long :0; };
struct BFs0ll_BFs0c_BFs0c_BFs0s { signed long long :0; signed char :0; signed char :0; signed short :0; };
struct BFs0ll_BFs0c_BFs0c_BFu0c { signed long long :0; signed char :0; signed char :0; unsigned char :0; };
struct BFs0ll_BFs0c_BFs0c_BFu0i { signed long long :0; signed char :0; signed char :0; unsigned int :0; };
struct BFs0ll_BFs0c_BFs0c_BFu0ll { signed long long :0; signed char :0; signed char :0; unsigned long long :0; };
struct BFs0ll_BFs0c_BFs0c_BFu0s { signed long long :0; signed char :0; signed char :0; unsigned short :0; };
struct BFs0ll_BFs0c_BFs0i { signed long long :0; signed char :0; signed int :0; };
struct BFs0ll_BFs0c_BFs0i_BFs0c { signed long long :0; signed char :0; signed int :0; signed char :0; };
struct BFs0ll_BFs0c_BFs0i_BFs0i { signed long long :0; signed char :0; signed int :0; signed int :0; };
struct BFs0ll_BFs0c_BFs0i_BFs0ll { signed long long :0; signed char :0; signed int :0; signed long long :0; };
struct BFs0ll_BFs0c_BFs0i_BFs0s { signed long long :0; signed char :0; signed int :0; signed short :0; };
struct BFs0ll_BFs0c_BFs0i_BFu0c { signed long long :0; signed char :0; signed int :0; unsigned char :0; };
struct BFs0ll_BFs0c_BFs0i_BFu0i { signed long long :0; signed char :0; signed int :0; unsigned int :0; };
struct BFs0ll_BFs0c_BFs0i_BFu0ll { signed long long :0; signed char :0; signed int :0; unsigned long long :0; };
struct BFs0ll_BFs0c_BFs0i_BFu0s { signed long long :0; signed char :0; signed int :0; unsigned short :0; };
struct BFs0ll_BFs0c_BFs0ll { signed long long :0; signed char :0; signed long long :0; };
struct BFs0ll_BFs0c_BFs0ll_BFs0c { signed long long :0; signed char :0; signed long long :0; signed char :0; };
struct BFs0ll_BFs0c_BFs0ll_BFs0i { signed long long :0; signed char :0; signed long long :0; signed int :0; };
struct BFs0ll_BFs0c_BFs0ll_BFs0ll { signed long long :0; signed char :0; signed long long :0; signed long long :0; };
struct BFs0ll_BFs0c_BFs0ll_BFs0s { signed long long :0; signed char :0; signed long long :0; signed short :0; };
struct BFs0ll_BFs0c_BFs0ll_BFu0c { signed long long :0; signed char :0; signed long long :0; unsigned char :0; };
struct BFs0ll_BFs0c_BFs0ll_BFu0i { signed long long :0; signed char :0; signed long long :0; unsigned int :0; };
struct BFs0ll_BFs0c_BFs0ll_BFu0ll { signed long long :0; signed char :0; signed long long :0; unsigned long long :0; };
struct BFs0ll_BFs0c_BFs0ll_BFu0s { signed long long :0; signed char :0; signed long long :0; unsigned short :0; };
struct BFs0ll_BFs0c_BFs0s { signed long long :0; signed char :0; signed short :0; };
struct BFs0ll_BFs0c_BFs0s_BFs0c { signed long long :0; signed char :0; signed short :0; signed char :0; };
struct BFs0ll_BFs0c_BFs0s_BFs0i { signed long long :0; signed char :0; signed short :0; signed int :0; };
struct BFs0ll_BFs0c_BFs0s_BFs0ll { signed long long :0; signed char :0; signed short :0; signed long long :0; };
struct BFs0ll_BFs0c_BFs0s_BFs0s { signed long long :0; signed char :0; signed short :0; signed short :0; };
struct BFs0ll_BFs0c_BFs0s_BFu0c { signed long long :0; signed char :0; signed short :0; unsigned char :0; };
struct BFs0ll_BFs0c_BFs0s_BFu0i { signed long long :0; signed char :0; signed short :0; unsigned int :0; };
struct BFs0ll_BFs0c_BFs0s_BFu0ll { signed long long :0; signed char :0; signed short :0; unsigned long long :0; };
struct BFs0ll_BFs0c_BFs0s_BFu0s { signed long long :0; signed char :0; signed short :0; unsigned short :0; };
struct BFs0ll_BFs0c_BFu0c { signed long long :0; signed char :0; unsigned char :0; };
struct BFs0ll_BFs0c_BFu0c_BFs0c { signed long long :0; signed char :0; unsigned char :0; signed char :0; };
struct BFs0ll_BFs0c_BFu0c_BFs0i { signed long long :0; signed char :0; unsigned char :0; signed int :0; };
struct BFs0ll_BFs0c_BFu0c_BFs0ll { signed long long :0; signed char :0; unsigned char :0; signed long long :0; };
struct BFs0ll_BFs0c_BFu0c_BFs0s { signed long long :0; signed char :0; unsigned char :0; signed short :0; };
struct BFs0ll_BFs0c_BFu0c_BFu0c { signed long long :0; signed char :0; unsigned char :0; unsigned char :0; };
struct BFs0ll_BFs0c_BFu0c_BFu0i { signed long long :0; signed char :0; unsigned char :0; unsigned int :0; };
struct BFs0ll_BFs0c_BFu0c_BFu0ll { signed long long :0; signed char :0; unsigned char :0; unsigned long long :0; };
struct BFs0ll_BFs0c_BFu0c_BFu0s { signed long long :0; signed char :0; unsigned char :0; unsigned short :0; };
struct BFs0ll_BFs0c_BFu0i { signed long long :0; signed char :0; unsigned int :0; };
struct BFs0ll_BFs0c_BFu0i_BFs0c { signed long long :0; signed char :0; unsigned int :0; signed char :0; };
struct BFs0ll_BFs0c_BFu0i_BFs0i { signed long long :0; signed char :0; unsigned int :0; signed int :0; };
struct BFs0ll_BFs0c_BFu0i_BFs0ll { signed long long :0; signed char :0; unsigned int :0; signed long long :0; };
struct BFs0ll_BFs0c_BFu0i_BFs0s { signed long long :0; signed char :0; unsigned int :0; signed short :0; };
struct BFs0ll_BFs0c_BFu0i_BFu0c { signed long long :0; signed char :0; unsigned int :0; unsigned char :0; };
struct BFs0ll_BFs0c_BFu0i_BFu0i { signed long long :0; signed char :0; unsigned int :0; unsigned int :0; };
struct BFs0ll_BFs0c_BFu0i_BFu0ll { signed long long :0; signed char :0; unsigned int :0; unsigned long long :0; };
struct BFs0ll_BFs0c_BFu0i_BFu0s { signed long long :0; signed char :0; unsigned int :0; unsigned short :0; };
struct BFs0ll_BFs0c_BFu0ll { signed long long :0; signed char :0; unsigned long long :0; };
struct BFs0ll_BFs0c_BFu0ll_BFs0c { signed long long :0; signed char :0; unsigned long long :0; signed char :0; };
struct BFs0ll_BFs0c_BFu0ll_BFs0i { signed long long :0; signed char :0; unsigned long long :0; signed int :0; };
struct BFs0ll_BFs0c_BFu0ll_BFs0ll { signed long long :0; signed char :0; unsigned long long :0; signed long long :0; };
struct BFs0ll_BFs0c_BFu0ll_BFs0s { signed long long :0; signed char :0; unsigned long long :0; signed short :0; };
struct BFs0ll_BFs0c_BFu0ll_BFu0c { signed long long :0; signed char :0; unsigned long long :0; unsigned char :0; };
struct BFs0ll_BFs0c_BFu0ll_BFu0i { signed long long :0; signed char :0; unsigned long long :0; unsigned int :0; };
struct BFs0ll_BFs0c_BFu0ll_BFu0ll { signed long long :0; signed char :0; unsigned long long :0; unsigned long long :0; };
struct BFs0ll_BFs0c_BFu0ll_BFu0s { signed long long :0; signed char :0; unsigned long long :0; unsigned short :0; };
struct BFs0ll_BFs0c_BFu0s { signed long long :0; signed char :0; unsigned short :0; };
struct BFs0ll_BFs0c_BFu0s_BFs0c { signed long long :0; signed char :0; unsigned short :0; signed char :0; };
struct BFs0ll_BFs0c_BFu0s_BFs0i { signed long long :0; signed char :0; unsigned short :0; signed int :0; };
struct BFs0ll_BFs0c_BFu0s_BFs0ll { signed long long :0; signed char :0; unsigned short :0; signed long long :0; };
struct BFs0ll_BFs0c_BFu0s_BFs0s { signed long long :0; signed char :0; unsigned short :0; signed short :0; };
struct BFs0ll_BFs0c_BFu0s_BFu0c { signed long long :0; signed char :0; unsigned short :0; unsigned char :0; };
struct BFs0ll_BFs0c_BFu0s_BFu0i { signed long long :0; signed char :0; unsigned short :0; unsigned int :0; };
struct BFs0ll_BFs0c_BFu0s_BFu0ll { signed long long :0; signed char :0; unsigned short :0; unsigned long long :0; };
struct BFs0ll_BFs0c_BFu0s_BFu0s { signed long long :0; signed char :0; unsigned short :0; unsigned short :0; };
struct BFs0ll_BFs0i { signed long long :0; signed int :0; };
struct BFs0ll_BFs0i_BFs0c { signed long long :0; signed int :0; signed char :0; };
struct BFs0ll_BFs0i_BFs0c_BFs0c { signed long long :0; signed int :0; signed char :0; signed char :0; };
struct BFs0ll_BFs0i_BFs0c_BFs0i { signed long long :0; signed int :0; signed char :0; signed int :0; };
struct BFs0ll_BFs0i_BFs0c_BFs0ll { signed long long :0; signed int :0; signed char :0; signed long long :0; };
struct BFs0ll_BFs0i_BFs0c_BFs0s { signed long long :0; signed int :0; signed char :0; signed short :0; };
struct BFs0ll_BFs0i_BFs0c_BFu0c { signed long long :0; signed int :0; signed char :0; unsigned char :0; };
struct BFs0ll_BFs0i_BFs0c_BFu0i { signed long long :0; signed int :0; signed char :0; unsigned int :0; };
struct BFs0ll_BFs0i_BFs0c_BFu0ll { signed long long :0; signed int :0; signed char :0; unsigned long long :0; };
struct BFs0ll_BFs0i_BFs0c_BFu0s { signed long long :0; signed int :0; signed char :0; unsigned short :0; };
struct BFs0ll_BFs0i_BFs0i { signed long long :0; signed int :0; signed int :0; };
struct BFs0ll_BFs0i_BFs0i_BFs0c { signed long long :0; signed int :0; signed int :0; signed char :0; };
struct BFs0ll_BFs0i_BFs0i_BFs0i { signed long long :0; signed int :0; signed int :0; signed int :0; };
struct BFs0ll_BFs0i_BFs0i_BFs0ll { signed long long :0; signed int :0; signed int :0; signed long long :0; };
struct BFs0ll_BFs0i_BFs0i_BFs0s { signed long long :0; signed int :0; signed int :0; signed short :0; };
struct BFs0ll_BFs0i_BFs0i_BFu0c { signed long long :0; signed int :0; signed int :0; unsigned char :0; };
struct BFs0ll_BFs0i_BFs0i_BFu0i { signed long long :0; signed int :0; signed int :0; unsigned int :0; };
struct BFs0ll_BFs0i_BFs0i_BFu0ll { signed long long :0; signed int :0; signed int :0; unsigned long long :0; };
struct BFs0ll_BFs0i_BFs0i_BFu0s { signed long long :0; signed int :0; signed int :0; unsigned short :0; };
struct BFs0ll_BFs0i_BFs0ll { signed long long :0; signed int :0; signed long long :0; };
struct BFs0ll_BFs0i_BFs0ll_BFs0c { signed long long :0; signed int :0; signed long long :0; signed char :0; };
struct BFs0ll_BFs0i_BFs0ll_BFs0i { signed long long :0; signed int :0; signed long long :0; signed int :0; };
struct BFs0ll_BFs0i_BFs0ll_BFs0ll { signed long long :0; signed int :0; signed long long :0; signed long long :0; };
struct BFs0ll_BFs0i_BFs0ll_BFs0s { signed long long :0; signed int :0; signed long long :0; signed short :0; };
struct BFs0ll_BFs0i_BFs0ll_BFu0c { signed long long :0; signed int :0; signed long long :0; unsigned char :0; };
struct BFs0ll_BFs0i_BFs0ll_BFu0i { signed long long :0; signed int :0; signed long long :0; unsigned int :0; };
struct BFs0ll_BFs0i_BFs0ll_BFu0ll { signed long long :0; signed int :0; signed long long :0; unsigned long long :0; };
struct BFs0ll_BFs0i_BFs0ll_BFu0s { signed long long :0; signed int :0; signed long long :0; unsigned short :0; };
struct BFs0ll_BFs0i_BFs0s { signed long long :0; signed int :0; signed short :0; };
struct BFs0ll_BFs0i_BFs0s_BFs0c { signed long long :0; signed int :0; signed short :0; signed char :0; };
struct BFs0ll_BFs0i_BFs0s_BFs0i { signed long long :0; signed int :0; signed short :0; signed int :0; };
struct BFs0ll_BFs0i_BFs0s_BFs0ll { signed long long :0; signed int :0; signed short :0; signed long long :0; };
struct BFs0ll_BFs0i_BFs0s_BFs0s { signed long long :0; signed int :0; signed short :0; signed short :0; };
struct BFs0ll_BFs0i_BFs0s_BFu0c { signed long long :0; signed int :0; signed short :0; unsigned char :0; };
struct BFs0ll_BFs0i_BFs0s_BFu0i { signed long long :0; signed int :0; signed short :0; unsigned int :0; };
struct BFs0ll_BFs0i_BFs0s_BFu0ll { signed long long :0; signed int :0; signed short :0; unsigned long long :0; };
struct BFs0ll_BFs0i_BFs0s_BFu0s { signed long long :0; signed int :0; signed short :0; unsigned short :0; };
struct BFs0ll_BFs0i_BFu0c { signed long long :0; signed int :0; unsigned char :0; };
struct BFs0ll_BFs0i_BFu0c_BFs0c { signed long long :0; signed int :0; unsigned char :0; signed char :0; };
struct BFs0ll_BFs0i_BFu0c_BFs0i { signed long long :0; signed int :0; unsigned char :0; signed int :0; };
struct BFs0ll_BFs0i_BFu0c_BFs0ll { signed long long :0; signed int :0; unsigned char :0; signed long long :0; };
struct BFs0ll_BFs0i_BFu0c_BFs0s { signed long long :0; signed int :0; unsigned char :0; signed short :0; };
struct BFs0ll_BFs0i_BFu0c_BFu0c { signed long long :0; signed int :0; unsigned char :0; unsigned char :0; };
struct BFs0ll_BFs0i_BFu0c_BFu0i { signed long long :0; signed int :0; unsigned char :0; unsigned int :0; };
struct BFs0ll_BFs0i_BFu0c_BFu0ll { signed long long :0; signed int :0; unsigned char :0; unsigned long long :0; };
struct BFs0ll_BFs0i_BFu0c_BFu0s { signed long long :0; signed int :0; unsigned char :0; unsigned short :0; };
struct BFs0ll_BFs0i_BFu0i { signed long long :0; signed int :0; unsigned int :0; };
struct BFs0ll_BFs0i_BFu0i_BFs0c { signed long long :0; signed int :0; unsigned int :0; signed char :0; };
struct BFs0ll_BFs0i_BFu0i_BFs0i { signed long long :0; signed int :0; unsigned int :0; signed int :0; };
struct BFs0ll_BFs0i_BFu0i_BFs0ll { signed long long :0; signed int :0; unsigned int :0; signed long long :0; };
struct BFs0ll_BFs0i_BFu0i_BFs0s { signed long long :0; signed int :0; unsigned int :0; signed short :0; };
struct BFs0ll_BFs0i_BFu0i_BFu0c { signed long long :0; signed int :0; unsigned int :0; unsigned char :0; };
struct BFs0ll_BFs0i_BFu0i_BFu0i { signed long long :0; signed int :0; unsigned int :0; unsigned int :0; };
struct BFs0ll_BFs0i_BFu0i_BFu0ll { signed long long :0; signed int :0; unsigned int :0; unsigned long long :0; };
struct BFs0ll_BFs0i_BFu0i_BFu0s { signed long long :0; signed int :0; unsigned int :0; unsigned short :0; };
struct BFs0ll_BFs0i_BFu0ll { signed long long :0; signed int :0; unsigned long long :0; };
struct BFs0ll_BFs0i_BFu0ll_BFs0c { signed long long :0; signed int :0; unsigned long long :0; signed char :0; };
struct BFs0ll_BFs0i_BFu0ll_BFs0i { signed long long :0; signed int :0; unsigned long long :0; signed int :0; };
struct BFs0ll_BFs0i_BFu0ll_BFs0ll { signed long long :0; signed int :0; unsigned long long :0; signed long long :0; };
struct BFs0ll_BFs0i_BFu0ll_BFs0s { signed long long :0; signed int :0; unsigned long long :0; signed short :0; };
struct BFs0ll_BFs0i_BFu0ll_BFu0c { signed long long :0; signed int :0; unsigned long long :0; unsigned char :0; };
struct BFs0ll_BFs0i_BFu0ll_BFu0i { signed long long :0; signed int :0; unsigned long long :0; unsigned int :0; };
struct BFs0ll_BFs0i_BFu0ll_BFu0ll { signed long long :0; signed int :0; unsigned long long :0; unsigned long long :0; };
struct BFs0ll_BFs0i_BFu0ll_BFu0s { signed long long :0; signed int :0; unsigned long long :0; unsigned short :0; };
struct BFs0ll_BFs0i_BFu0s { signed long long :0; signed int :0; unsigned short :0; };
struct BFs0ll_BFs0i_BFu0s_BFs0c { signed long long :0; signed int :0; unsigned short :0; signed char :0; };
struct BFs0ll_BFs0i_BFu0s_BFs0i { signed long long :0; signed int :0; unsigned short :0; signed int :0; };
struct BFs0ll_BFs0i_BFu0s_BFs0ll { signed long long :0; signed int :0; unsigned short :0; signed long long :0; };
struct BFs0ll_BFs0i_BFu0s_BFs0s { signed long long :0; signed int :0; unsigned short :0; signed short :0; };
struct BFs0ll_BFs0i_BFu0s_BFu0c { signed long long :0; signed int :0; unsigned short :0; unsigned char :0; };
struct BFs0ll_BFs0i_BFu0s_BFu0i { signed long long :0; signed int :0; unsigned short :0; unsigned int :0; };
struct BFs0ll_BFs0i_BFu0s_BFu0ll { signed long long :0; signed int :0; unsigned short :0; unsigned long long :0; };
struct BFs0ll_BFs0i_BFu0s_BFu0s { signed long long :0; signed int :0; unsigned short :0; unsigned short :0; };
struct BFs0ll_BFs0ll { signed long long :0; signed long long :0; };
struct BFs0ll_BFs0ll_BFs0c { signed long long :0; signed long long :0; signed char :0; };
struct BFs0ll_BFs0ll_BFs0c_BFs0c { signed long long :0; signed long long :0; signed char :0; signed char :0; };
struct BFs0ll_BFs0ll_BFs0c_BFs0i { signed long long :0; signed long long :0; signed char :0; signed int :0; };
struct BFs0ll_BFs0ll_BFs0c_BFs0ll { signed long long :0; signed long long :0; signed char :0; signed long long :0; };
struct BFs0ll_BFs0ll_BFs0c_BFs0s { signed long long :0; signed long long :0; signed char :0; signed short :0; };
struct BFs0ll_BFs0ll_BFs0c_BFu0c { signed long long :0; signed long long :0; signed char :0; unsigned char :0; };
struct BFs0ll_BFs0ll_BFs0c_BFu0i { signed long long :0; signed long long :0; signed char :0; unsigned int :0; };
struct BFs0ll_BFs0ll_BFs0c_BFu0ll { signed long long :0; signed long long :0; signed char :0; unsigned long long :0; };
struct BFs0ll_BFs0ll_BFs0c_BFu0s { signed long long :0; signed long long :0; signed char :0; unsigned short :0; };
struct BFs0ll_BFs0ll_BFs0i { signed long long :0; signed long long :0; signed int :0; };
struct BFs0ll_BFs0ll_BFs0i_BFs0c { signed long long :0; signed long long :0; signed int :0; signed char :0; };
struct BFs0ll_BFs0ll_BFs0i_BFs0i { signed long long :0; signed long long :0; signed int :0; signed int :0; };
struct BFs0ll_BFs0ll_BFs0i_BFs0ll { signed long long :0; signed long long :0; signed int :0; signed long long :0; };
struct BFs0ll_BFs0ll_BFs0i_BFs0s { signed long long :0; signed long long :0; signed int :0; signed short :0; };
struct BFs0ll_BFs0ll_BFs0i_BFu0c { signed long long :0; signed long long :0; signed int :0; unsigned char :0; };
struct BFs0ll_BFs0ll_BFs0i_BFu0i { signed long long :0; signed long long :0; signed int :0; unsigned int :0; };
struct BFs0ll_BFs0ll_BFs0i_BFu0ll { signed long long :0; signed long long :0; signed int :0; unsigned long long :0; };
struct BFs0ll_BFs0ll_BFs0i_BFu0s { signed long long :0; signed long long :0; signed int :0; unsigned short :0; };
struct BFs0ll_BFs0ll_BFs0ll { signed long long :0; signed long long :0; signed long long :0; };
struct BFs0ll_BFs0ll_BFs0ll_BFs0c { signed long long :0; signed long long :0; signed long long :0; signed char :0; };
struct BFs0ll_BFs0ll_BFs0ll_BFs0i { signed long long :0; signed long long :0; signed long long :0; signed int :0; };
struct BFs0ll_BFs0ll_BFs0ll_BFs0ll { signed long long :0; signed long long :0; signed long long :0; signed long long :0; };
struct BFs0ll_BFs0ll_BFs0ll_BFs0s { signed long long :0; signed long long :0; signed long long :0; signed short :0; };
struct BFs0ll_BFs0ll_BFs0ll_BFu0c { signed long long :0; signed long long :0; signed long long :0; unsigned char :0; };
struct BFs0ll_BFs0ll_BFs0ll_BFu0i { signed long long :0; signed long long :0; signed long long :0; unsigned int :0; };
struct BFs0ll_BFs0ll_BFs0ll_BFu0ll { signed long long :0; signed long long :0; signed long long :0; unsigned long long :0; };
struct BFs0ll_BFs0ll_BFs0ll_BFu0s { signed long long :0; signed long long :0; signed long long :0; unsigned short :0; };
struct BFs0ll_BFs0ll_BFs0s { signed long long :0; signed long long :0; signed short :0; };
struct BFs0ll_BFs0ll_BFs0s_BFs0c { signed long long :0; signed long long :0; signed short :0; signed char :0; };
struct BFs0ll_BFs0ll_BFs0s_BFs0i { signed long long :0; signed long long :0; signed short :0; signed int :0; };
struct BFs0ll_BFs0ll_BFs0s_BFs0ll { signed long long :0; signed long long :0; signed short :0; signed long long :0; };
struct BFs0ll_BFs0ll_BFs0s_BFs0s { signed long long :0; signed long long :0; signed short :0; signed short :0; };
struct BFs0ll_BFs0ll_BFs0s_BFu0c { signed long long :0; signed long long :0; signed short :0; unsigned char :0; };
struct BFs0ll_BFs0ll_BFs0s_BFu0i { signed long long :0; signed long long :0; signed short :0; unsigned int :0; };
struct BFs0ll_BFs0ll_BFs0s_BFu0ll { signed long long :0; signed long long :0; signed short :0; unsigned long long :0; };
struct BFs0ll_BFs0ll_BFs0s_BFu0s { signed long long :0; signed long long :0; signed short :0; unsigned short :0; };
struct BFs0ll_BFs0ll_BFu0c { signed long long :0; signed long long :0; unsigned char :0; };
struct BFs0ll_BFs0ll_BFu0c_BFs0c { signed long long :0; signed long long :0; unsigned char :0; signed char :0; };
struct BFs0ll_BFs0ll_BFu0c_BFs0i { signed long long :0; signed long long :0; unsigned char :0; signed int :0; };
struct BFs0ll_BFs0ll_BFu0c_BFs0ll { signed long long :0; signed long long :0; unsigned char :0; signed long long :0; };
struct BFs0ll_BFs0ll_BFu0c_BFs0s { signed long long :0; signed long long :0; unsigned char :0; signed short :0; };
struct BFs0ll_BFs0ll_BFu0c_BFu0c { signed long long :0; signed long long :0; unsigned char :0; unsigned char :0; };
struct BFs0ll_BFs0ll_BFu0c_BFu0i { signed long long :0; signed long long :0; unsigned char :0; unsigned int :0; };
struct BFs0ll_BFs0ll_BFu0c_BFu0ll { signed long long :0; signed long long :0; unsigned char :0; unsigned long long :0; };
struct BFs0ll_BFs0ll_BFu0c_BFu0s { signed long long :0; signed long long :0; unsigned char :0; unsigned short :0; };
struct BFs0ll_BFs0ll_BFu0i { signed long long :0; signed long long :0; unsigned int :0; };
struct BFs0ll_BFs0ll_BFu0i_BFs0c { signed long long :0; signed long long :0; unsigned int :0; signed char :0; };
struct BFs0ll_BFs0ll_BFu0i_BFs0i { signed long long :0; signed long long :0; unsigned int :0; signed int :0; };
struct BFs0ll_BFs0ll_BFu0i_BFs0ll { signed long long :0; signed long long :0; unsigned int :0; signed long long :0; };
struct BFs0ll_BFs0ll_BFu0i_BFs0s { signed long long :0; signed long long :0; unsigned int :0; signed short :0; };
struct BFs0ll_BFs0ll_BFu0i_BFu0c { signed long long :0; signed long long :0; unsigned int :0; unsigned char :0; };
struct BFs0ll_BFs0ll_BFu0i_BFu0i { signed long long :0; signed long long :0; unsigned int :0; unsigned int :0; };
struct BFs0ll_BFs0ll_BFu0i_BFu0ll { signed long long :0; signed long long :0; unsigned int :0; unsigned long long :0; };
struct BFs0ll_BFs0ll_BFu0i_BFu0s { signed long long :0; signed long long :0; unsigned int :0; unsigned short :0; };
struct BFs0ll_BFs0ll_BFu0ll { signed long long :0; signed long long :0; unsigned long long :0; };
struct BFs0ll_BFs0ll_BFu0ll_BFs0c { signed long long :0; signed long long :0; unsigned long long :0; signed char :0; };
struct BFs0ll_BFs0ll_BFu0ll_BFs0i { signed long long :0; signed long long :0; unsigned long long :0; signed int :0; };
struct BFs0ll_BFs0ll_BFu0ll_BFs0ll { signed long long :0; signed long long :0; unsigned long long :0; signed long long :0; };
struct BFs0ll_BFs0ll_BFu0ll_BFs0s { signed long long :0; signed long long :0; unsigned long long :0; signed short :0; };
struct BFs0ll_BFs0ll_BFu0ll_BFu0c { signed long long :0; signed long long :0; unsigned long long :0; unsigned char :0; };
struct BFs0ll_BFs0ll_BFu0ll_BFu0i { signed long long :0; signed long long :0; unsigned long long :0; unsigned int :0; };
struct BFs0ll_BFs0ll_BFu0ll_BFu0ll { signed long long :0; signed long long :0; unsigned long long :0; unsigned long long :0; };
struct BFs0ll_BFs0ll_BFu0ll_BFu0s { signed long long :0; signed long long :0; unsigned long long :0; unsigned short :0; };
struct BFs0ll_BFs0ll_BFu0s { signed long long :0; signed long long :0; unsigned short :0; };
struct BFs0ll_BFs0ll_BFu0s_BFs0c { signed long long :0; signed long long :0; unsigned short :0; signed char :0; };
struct BFs0ll_BFs0ll_BFu0s_BFs0i { signed long long :0; signed long long :0; unsigned short :0; signed int :0; };
struct BFs0ll_BFs0ll_BFu0s_BFs0ll { signed long long :0; signed long long :0; unsigned short :0; signed long long :0; };
struct BFs0ll_BFs0ll_BFu0s_BFs0s { signed long long :0; signed long long :0; unsigned short :0; signed short :0; };
struct BFs0ll_BFs0ll_BFu0s_BFu0c { signed long long :0; signed long long :0; unsigned short :0; unsigned char :0; };
struct BFs0ll_BFs0ll_BFu0s_BFu0i { signed long long :0; signed long long :0; unsigned short :0; unsigned int :0; };
struct BFs0ll_BFs0ll_BFu0s_BFu0ll { signed long long :0; signed long long :0; unsigned short :0; unsigned long long :0; };
struct BFs0ll_BFs0ll_BFu0s_BFu0s { signed long long :0; signed long long :0; unsigned short :0; unsigned short :0; };
struct BFs0ll_BFs0s { signed long long :0; signed short :0; };
struct BFs0ll_BFs0s_BFs0c { signed long long :0; signed short :0; signed char :0; };
struct BFs0ll_BFs0s_BFs0c_BFs0c { signed long long :0; signed short :0; signed char :0; signed char :0; };
struct BFs0ll_BFs0s_BFs0c_BFs0i { signed long long :0; signed short :0; signed char :0; signed int :0; };
struct BFs0ll_BFs0s_BFs0c_BFs0ll { signed long long :0; signed short :0; signed char :0; signed long long :0; };
struct BFs0ll_BFs0s_BFs0c_BFs0s { signed long long :0; signed short :0; signed char :0; signed short :0; };
struct BFs0ll_BFs0s_BFs0c_BFu0c { signed long long :0; signed short :0; signed char :0; unsigned char :0; };
struct BFs0ll_BFs0s_BFs0c_BFu0i { signed long long :0; signed short :0; signed char :0; unsigned int :0; };
struct BFs0ll_BFs0s_BFs0c_BFu0ll { signed long long :0; signed short :0; signed char :0; unsigned long long :0; };
struct BFs0ll_BFs0s_BFs0c_BFu0s { signed long long :0; signed short :0; signed char :0; unsigned short :0; };
struct BFs0ll_BFs0s_BFs0i { signed long long :0; signed short :0; signed int :0; };
struct BFs0ll_BFs0s_BFs0i_BFs0c { signed long long :0; signed short :0; signed int :0; signed char :0; };
struct BFs0ll_BFs0s_BFs0i_BFs0i { signed long long :0; signed short :0; signed int :0; signed int :0; };
struct BFs0ll_BFs0s_BFs0i_BFs0ll { signed long long :0; signed short :0; signed int :0; signed long long :0; };
struct BFs0ll_BFs0s_BFs0i_BFs0s { signed long long :0; signed short :0; signed int :0; signed short :0; };
struct BFs0ll_BFs0s_BFs0i_BFu0c { signed long long :0; signed short :0; signed int :0; unsigned char :0; };
struct BFs0ll_BFs0s_BFs0i_BFu0i { signed long long :0; signed short :0; signed int :0; unsigned int :0; };
struct BFs0ll_BFs0s_BFs0i_BFu0ll { signed long long :0; signed short :0; signed int :0; unsigned long long :0; };
struct BFs0ll_BFs0s_BFs0i_BFu0s { signed long long :0; signed short :0; signed int :0; unsigned short :0; };
struct BFs0ll_BFs0s_BFs0ll { signed long long :0; signed short :0; signed long long :0; };
struct BFs0ll_BFs0s_BFs0ll_BFs0c { signed long long :0; signed short :0; signed long long :0; signed char :0; };
struct BFs0ll_BFs0s_BFs0ll_BFs0i { signed long long :0; signed short :0; signed long long :0; signed int :0; };
struct BFs0ll_BFs0s_BFs0ll_BFs0ll { signed long long :0; signed short :0; signed long long :0; signed long long :0; };
struct BFs0ll_BFs0s_BFs0ll_BFs0s { signed long long :0; signed short :0; signed long long :0; signed short :0; };
struct BFs0ll_BFs0s_BFs0ll_BFu0c { signed long long :0; signed short :0; signed long long :0; unsigned char :0; };
struct BFs0ll_BFs0s_BFs0ll_BFu0i { signed long long :0; signed short :0; signed long long :0; unsigned int :0; };
struct BFs0ll_BFs0s_BFs0ll_BFu0ll { signed long long :0; signed short :0; signed long long :0; unsigned long long :0; };
struct BFs0ll_BFs0s_BFs0ll_BFu0s { signed long long :0; signed short :0; signed long long :0; unsigned short :0; };
struct BFs0ll_BFs0s_BFs0s { signed long long :0; signed short :0; signed short :0; };
struct BFs0ll_BFs0s_BFs0s_BFs0c { signed long long :0; signed short :0; signed short :0; signed char :0; };
struct BFs0ll_BFs0s_BFs0s_BFs0i { signed long long :0; signed short :0; signed short :0; signed int :0; };
struct BFs0ll_BFs0s_BFs0s_BFs0ll { signed long long :0; signed short :0; signed short :0; signed long long :0; };
struct BFs0ll_BFs0s_BFs0s_BFs0s { signed long long :0; signed short :0; signed short :0; signed short :0; };
struct BFs0ll_BFs0s_BFs0s_BFu0c { signed long long :0; signed short :0; signed short :0; unsigned char :0; };
struct BFs0ll_BFs0s_BFs0s_BFu0i { signed long long :0; signed short :0; signed short :0; unsigned int :0; };
struct BFs0ll_BFs0s_BFs0s_BFu0ll { signed long long :0; signed short :0; signed short :0; unsigned long long :0; };
struct BFs0ll_BFs0s_BFs0s_BFu0s { signed long long :0; signed short :0; signed short :0; unsigned short :0; };
struct BFs0ll_BFs0s_BFu0c { signed long long :0; signed short :0; unsigned char :0; };
struct BFs0ll_BFs0s_BFu0c_BFs0c { signed long long :0; signed short :0; unsigned char :0; signed char :0; };
struct BFs0ll_BFs0s_BFu0c_BFs0i { signed long long :0; signed short :0; unsigned char :0; signed int :0; };
struct BFs0ll_BFs0s_BFu0c_BFs0ll { signed long long :0; signed short :0; unsigned char :0; signed long long :0; };
struct BFs0ll_BFs0s_BFu0c_BFs0s { signed long long :0; signed short :0; unsigned char :0; signed short :0; };
struct BFs0ll_BFs0s_BFu0c_BFu0c { signed long long :0; signed short :0; unsigned char :0; unsigned char :0; };
struct BFs0ll_BFs0s_BFu0c_BFu0i { signed long long :0; signed short :0; unsigned char :0; unsigned int :0; };
struct BFs0ll_BFs0s_BFu0c_BFu0ll { signed long long :0; signed short :0; unsigned char :0; unsigned long long :0; };
struct BFs0ll_BFs0s_BFu0c_BFu0s { signed long long :0; signed short :0; unsigned char :0; unsigned short :0; };
struct BFs0ll_BFs0s_BFu0i { signed long long :0; signed short :0; unsigned int :0; };
struct BFs0ll_BFs0s_BFu0i_BFs0c { signed long long :0; signed short :0; unsigned int :0; signed char :0; };
struct BFs0ll_BFs0s_BFu0i_BFs0i { signed long long :0; signed short :0; unsigned int :0; signed int :0; };
struct BFs0ll_BFs0s_BFu0i_BFs0ll { signed long long :0; signed short :0; unsigned int :0; signed long long :0; };
struct BFs0ll_BFs0s_BFu0i_BFs0s { signed long long :0; signed short :0; unsigned int :0; signed short :0; };
struct BFs0ll_BFs0s_BFu0i_BFu0c { signed long long :0; signed short :0; unsigned int :0; unsigned char :0; };
struct BFs0ll_BFs0s_BFu0i_BFu0i { signed long long :0; signed short :0; unsigned int :0; unsigned int :0; };
struct BFs0ll_BFs0s_BFu0i_BFu0ll { signed long long :0; signed short :0; unsigned int :0; unsigned long long :0; };
struct BFs0ll_BFs0s_BFu0i_BFu0s { signed long long :0; signed short :0; unsigned int :0; unsigned short :0; };
struct BFs0ll_BFs0s_BFu0ll { signed long long :0; signed short :0; unsigned long long :0; };
struct BFs0ll_BFs0s_BFu0ll_BFs0c { signed long long :0; signed short :0; unsigned long long :0; signed char :0; };
struct BFs0ll_BFs0s_BFu0ll_BFs0i { signed long long :0; signed short :0; unsigned long long :0; signed int :0; };
struct BFs0ll_BFs0s_BFu0ll_BFs0ll { signed long long :0; signed short :0; unsigned long long :0; signed long long :0; };
struct BFs0ll_BFs0s_BFu0ll_BFs0s { signed long long :0; signed short :0; unsigned long long :0; signed short :0; };
struct BFs0ll_BFs0s_BFu0ll_BFu0c { signed long long :0; signed short :0; unsigned long long :0; unsigned char :0; };
struct BFs0ll_BFs0s_BFu0ll_BFu0i { signed long long :0; signed short :0; unsigned long long :0; unsigned int :0; };
struct BFs0ll_BFs0s_BFu0ll_BFu0ll { signed long long :0; signed short :0; unsigned long long :0; unsigned long long :0; };
struct BFs0ll_BFs0s_BFu0ll_BFu0s { signed long long :0; signed short :0; unsigned long long :0; unsigned short :0; };
struct BFs0ll_BFs0s_BFu0s { signed long long :0; signed short :0; unsigned short :0; };
struct BFs0ll_BFs0s_BFu0s_BFs0c { signed long long :0; signed short :0; unsigned short :0; signed char :0; };
struct BFs0ll_BFs0s_BFu0s_BFs0i { signed long long :0; signed short :0; unsigned short :0; signed int :0; };
struct BFs0ll_BFs0s_BFu0s_BFs0ll { signed long long :0; signed short :0; unsigned short :0; signed long long :0; };
struct BFs0ll_BFs0s_BFu0s_BFs0s { signed long long :0; signed short :0; unsigned short :0; signed short :0; };
struct BFs0ll_BFs0s_BFu0s_BFu0c { signed long long :0; signed short :0; unsigned short :0; unsigned char :0; };
struct BFs0ll_BFs0s_BFu0s_BFu0i { signed long long :0; signed short :0; unsigned short :0; unsigned int :0; };
struct BFs0ll_BFs0s_BFu0s_BFu0ll { signed long long :0; signed short :0; unsigned short :0; unsigned long long :0; };
struct BFs0ll_BFs0s_BFu0s_BFu0s { signed long long :0; signed short :0; unsigned short :0; unsigned short :0; };
struct BFs0ll_BFu0c { signed long long :0; unsigned char :0; };
struct BFs0ll_BFu0c_BFs0c { signed long long :0; unsigned char :0; signed char :0; };
struct BFs0ll_BFu0c_BFs0c_BFs0c { signed long long :0; unsigned char :0; signed char :0; signed char :0; };
struct BFs0ll_BFu0c_BFs0c_BFs0i { signed long long :0; unsigned char :0; signed char :0; signed int :0; };
struct BFs0ll_BFu0c_BFs0c_BFs0ll { signed long long :0; unsigned char :0; signed char :0; signed long long :0; };
struct BFs0ll_BFu0c_BFs0c_BFs0s { signed long long :0; unsigned char :0; signed char :0; signed short :0; };
struct BFs0ll_BFu0c_BFs0c_BFu0c { signed long long :0; unsigned char :0; signed char :0; unsigned char :0; };
struct BFs0ll_BFu0c_BFs0c_BFu0i { signed long long :0; unsigned char :0; signed char :0; unsigned int :0; };
struct BFs0ll_BFu0c_BFs0c_BFu0ll { signed long long :0; unsigned char :0; signed char :0; unsigned long long :0; };
struct BFs0ll_BFu0c_BFs0c_BFu0s { signed long long :0; unsigned char :0; signed char :0; unsigned short :0; };
struct BFs0ll_BFu0c_BFs0i { signed long long :0; unsigned char :0; signed int :0; };
struct BFs0ll_BFu0c_BFs0i_BFs0c { signed long long :0; unsigned char :0; signed int :0; signed char :0; };
struct BFs0ll_BFu0c_BFs0i_BFs0i { signed long long :0; unsigned char :0; signed int :0; signed int :0; };
struct BFs0ll_BFu0c_BFs0i_BFs0ll { signed long long :0; unsigned char :0; signed int :0; signed long long :0; };
struct BFs0ll_BFu0c_BFs0i_BFs0s { signed long long :0; unsigned char :0; signed int :0; signed short :0; };
struct BFs0ll_BFu0c_BFs0i_BFu0c { signed long long :0; unsigned char :0; signed int :0; unsigned char :0; };
struct BFs0ll_BFu0c_BFs0i_BFu0i { signed long long :0; unsigned char :0; signed int :0; unsigned int :0; };
struct BFs0ll_BFu0c_BFs0i_BFu0ll { signed long long :0; unsigned char :0; signed int :0; unsigned long long :0; };
struct BFs0ll_BFu0c_BFs0i_BFu0s { signed long long :0; unsigned char :0; signed int :0; unsigned short :0; };
struct BFs0ll_BFu0c_BFs0ll { signed long long :0; unsigned char :0; signed long long :0; };
struct BFs0ll_BFu0c_BFs0ll_BFs0c { signed long long :0; unsigned char :0; signed long long :0; signed char :0; };
struct BFs0ll_BFu0c_BFs0ll_BFs0i { signed long long :0; unsigned char :0; signed long long :0; signed int :0; };
struct BFs0ll_BFu0c_BFs0ll_BFs0ll { signed long long :0; unsigned char :0; signed long long :0; signed long long :0; };
struct BFs0ll_BFu0c_BFs0ll_BFs0s { signed long long :0; unsigned char :0; signed long long :0; signed short :0; };
struct BFs0ll_BFu0c_BFs0ll_BFu0c { signed long long :0; unsigned char :0; signed long long :0; unsigned char :0; };
struct BFs0ll_BFu0c_BFs0ll_BFu0i { signed long long :0; unsigned char :0; signed long long :0; unsigned int :0; };
struct BFs0ll_BFu0c_BFs0ll_BFu0ll { signed long long :0; unsigned char :0; signed long long :0; unsigned long long :0; };
struct BFs0ll_BFu0c_BFs0ll_BFu0s { signed long long :0; unsigned char :0; signed long long :0; unsigned short :0; };
struct BFs0ll_BFu0c_BFs0s { signed long long :0; unsigned char :0; signed short :0; };
struct BFs0ll_BFu0c_BFs0s_BFs0c { signed long long :0; unsigned char :0; signed short :0; signed char :0; };
struct BFs0ll_BFu0c_BFs0s_BFs0i { signed long long :0; unsigned char :0; signed short :0; signed int :0; };
struct BFs0ll_BFu0c_BFs0s_BFs0ll { signed long long :0; unsigned char :0; signed short :0; signed long long :0; };
struct BFs0ll_BFu0c_BFs0s_BFs0s { signed long long :0; unsigned char :0; signed short :0; signed short :0; };
struct BFs0ll_BFu0c_BFs0s_BFu0c { signed long long :0; unsigned char :0; signed short :0; unsigned char :0; };
struct BFs0ll_BFu0c_BFs0s_BFu0i { signed long long :0; unsigned char :0; signed short :0; unsigned int :0; };
struct BFs0ll_BFu0c_BFs0s_BFu0ll { signed long long :0; unsigned char :0; signed short :0; unsigned long long :0; };
struct BFs0ll_BFu0c_BFs0s_BFu0s { signed long long :0; unsigned char :0; signed short :0; unsigned short :0; };
struct BFs0ll_BFu0c_BFu0c { signed long long :0; unsigned char :0; unsigned char :0; };
struct BFs0ll_BFu0c_BFu0c_BFs0c { signed long long :0; unsigned char :0; unsigned char :0; signed char :0; };
struct BFs0ll_BFu0c_BFu0c_BFs0i { signed long long :0; unsigned char :0; unsigned char :0; signed int :0; };
struct BFs0ll_BFu0c_BFu0c_BFs0ll { signed long long :0; unsigned char :0; unsigned char :0; signed long long :0; };
struct BFs0ll_BFu0c_BFu0c_BFs0s { signed long long :0; unsigned char :0; unsigned char :0; signed short :0; };
struct BFs0ll_BFu0c_BFu0c_BFu0c { signed long long :0; unsigned char :0; unsigned char :0; unsigned char :0; };
struct BFs0ll_BFu0c_BFu0c_BFu0i { signed long long :0; unsigned char :0; unsigned char :0; unsigned int :0; };
struct BFs0ll_BFu0c_BFu0c_BFu0ll { signed long long :0; unsigned char :0; unsigned char :0; unsigned long long :0; };
struct BFs0ll_BFu0c_BFu0c_BFu0s { signed long long :0; unsigned char :0; unsigned char :0; unsigned short :0; };
struct BFs0ll_BFu0c_BFu0i { signed long long :0; unsigned char :0; unsigned int :0; };
struct BFs0ll_BFu0c_BFu0i_BFs0c { signed long long :0; unsigned char :0; unsigned int :0; signed char :0; };
struct BFs0ll_BFu0c_BFu0i_BFs0i { signed long long :0; unsigned char :0; unsigned int :0; signed int :0; };
struct BFs0ll_BFu0c_BFu0i_BFs0ll { signed long long :0; unsigned char :0; unsigned int :0; signed long long :0; };
struct BFs0ll_BFu0c_BFu0i_BFs0s { signed long long :0; unsigned char :0; unsigned int :0; signed short :0; };
struct BFs0ll_BFu0c_BFu0i_BFu0c { signed long long :0; unsigned char :0; unsigned int :0; unsigned char :0; };
struct BFs0ll_BFu0c_BFu0i_BFu0i { signed long long :0; unsigned char :0; unsigned int :0; unsigned int :0; };
struct BFs0ll_BFu0c_BFu0i_BFu0ll { signed long long :0; unsigned char :0; unsigned int :0; unsigned long long :0; };
struct BFs0ll_BFu0c_BFu0i_BFu0s { signed long long :0; unsigned char :0; unsigned int :0; unsigned short :0; };
struct BFs0ll_BFu0c_BFu0ll { signed long long :0; unsigned char :0; unsigned long long :0; };
struct BFs0ll_BFu0c_BFu0ll_BFs0c { signed long long :0; unsigned char :0; unsigned long long :0; signed char :0; };
struct BFs0ll_BFu0c_BFu0ll_BFs0i { signed long long :0; unsigned char :0; unsigned long long :0; signed int :0; };
struct BFs0ll_BFu0c_BFu0ll_BFs0ll { signed long long :0; unsigned char :0; unsigned long long :0; signed long long :0; };
struct BFs0ll_BFu0c_BFu0ll_BFs0s { signed long long :0; unsigned char :0; unsigned long long :0; signed short :0; };
struct BFs0ll_BFu0c_BFu0ll_BFu0c { signed long long :0; unsigned char :0; unsigned long long :0; unsigned char :0; };
struct BFs0ll_BFu0c_BFu0ll_BFu0i { signed long long :0; unsigned char :0; unsigned long long :0; unsigned int :0; };
struct BFs0ll_BFu0c_BFu0ll_BFu0ll { signed long long :0; unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct BFs0ll_BFu0c_BFu0ll_BFu0s { signed long long :0; unsigned char :0; unsigned long long :0; unsigned short :0; };
struct BFs0ll_BFu0c_BFu0s { signed long long :0; unsigned char :0; unsigned short :0; };
struct BFs0ll_BFu0c_BFu0s_BFs0c { signed long long :0; unsigned char :0; unsigned short :0; signed char :0; };
struct BFs0ll_BFu0c_BFu0s_BFs0i { signed long long :0; unsigned char :0; unsigned short :0; signed int :0; };
struct BFs0ll_BFu0c_BFu0s_BFs0ll { signed long long :0; unsigned char :0; unsigned short :0; signed long long :0; };
struct BFs0ll_BFu0c_BFu0s_BFs0s { signed long long :0; unsigned char :0; unsigned short :0; signed short :0; };
struct BFs0ll_BFu0c_BFu0s_BFu0c { signed long long :0; unsigned char :0; unsigned short :0; unsigned char :0; };
struct BFs0ll_BFu0c_BFu0s_BFu0i { signed long long :0; unsigned char :0; unsigned short :0; unsigned int :0; };
struct BFs0ll_BFu0c_BFu0s_BFu0ll { signed long long :0; unsigned char :0; unsigned short :0; unsigned long long :0; };
struct BFs0ll_BFu0c_BFu0s_BFu0s { signed long long :0; unsigned char :0; unsigned short :0; unsigned short :0; };
struct BFs0ll_BFu0i { signed long long :0; unsigned int :0; };
struct BFs0ll_BFu0i_BFs0c { signed long long :0; unsigned int :0; signed char :0; };
struct BFs0ll_BFu0i_BFs0c_BFs0c { signed long long :0; unsigned int :0; signed char :0; signed char :0; };
struct BFs0ll_BFu0i_BFs0c_BFs0i { signed long long :0; unsigned int :0; signed char :0; signed int :0; };
struct BFs0ll_BFu0i_BFs0c_BFs0ll { signed long long :0; unsigned int :0; signed char :0; signed long long :0; };
struct BFs0ll_BFu0i_BFs0c_BFs0s { signed long long :0; unsigned int :0; signed char :0; signed short :0; };
struct BFs0ll_BFu0i_BFs0c_BFu0c { signed long long :0; unsigned int :0; signed char :0; unsigned char :0; };
struct BFs0ll_BFu0i_BFs0c_BFu0i { signed long long :0; unsigned int :0; signed char :0; unsigned int :0; };
struct BFs0ll_BFu0i_BFs0c_BFu0ll { signed long long :0; unsigned int :0; signed char :0; unsigned long long :0; };
struct BFs0ll_BFu0i_BFs0c_BFu0s { signed long long :0; unsigned int :0; signed char :0; unsigned short :0; };
struct BFs0ll_BFu0i_BFs0i { signed long long :0; unsigned int :0; signed int :0; };
struct BFs0ll_BFu0i_BFs0i_BFs0c { signed long long :0; unsigned int :0; signed int :0; signed char :0; };
struct BFs0ll_BFu0i_BFs0i_BFs0i { signed long long :0; unsigned int :0; signed int :0; signed int :0; };
struct BFs0ll_BFu0i_BFs0i_BFs0ll { signed long long :0; unsigned int :0; signed int :0; signed long long :0; };
struct BFs0ll_BFu0i_BFs0i_BFs0s { signed long long :0; unsigned int :0; signed int :0; signed short :0; };
struct BFs0ll_BFu0i_BFs0i_BFu0c { signed long long :0; unsigned int :0; signed int :0; unsigned char :0; };
struct BFs0ll_BFu0i_BFs0i_BFu0i { signed long long :0; unsigned int :0; signed int :0; unsigned int :0; };
struct BFs0ll_BFu0i_BFs0i_BFu0ll { signed long long :0; unsigned int :0; signed int :0; unsigned long long :0; };
struct BFs0ll_BFu0i_BFs0i_BFu0s { signed long long :0; unsigned int :0; signed int :0; unsigned short :0; };
struct BFs0ll_BFu0i_BFs0ll { signed long long :0; unsigned int :0; signed long long :0; };
struct BFs0ll_BFu0i_BFs0ll_BFs0c { signed long long :0; unsigned int :0; signed long long :0; signed char :0; };
struct BFs0ll_BFu0i_BFs0ll_BFs0i { signed long long :0; unsigned int :0; signed long long :0; signed int :0; };
struct BFs0ll_BFu0i_BFs0ll_BFs0ll { signed long long :0; unsigned int :0; signed long long :0; signed long long :0; };
struct BFs0ll_BFu0i_BFs0ll_BFs0s { signed long long :0; unsigned int :0; signed long long :0; signed short :0; };
struct BFs0ll_BFu0i_BFs0ll_BFu0c { signed long long :0; unsigned int :0; signed long long :0; unsigned char :0; };
struct BFs0ll_BFu0i_BFs0ll_BFu0i { signed long long :0; unsigned int :0; signed long long :0; unsigned int :0; };
struct BFs0ll_BFu0i_BFs0ll_BFu0ll { signed long long :0; unsigned int :0; signed long long :0; unsigned long long :0; };
struct BFs0ll_BFu0i_BFs0ll_BFu0s { signed long long :0; unsigned int :0; signed long long :0; unsigned short :0; };
struct BFs0ll_BFu0i_BFs0s { signed long long :0; unsigned int :0; signed short :0; };
struct BFs0ll_BFu0i_BFs0s_BFs0c { signed long long :0; unsigned int :0; signed short :0; signed char :0; };
struct BFs0ll_BFu0i_BFs0s_BFs0i { signed long long :0; unsigned int :0; signed short :0; signed int :0; };
struct BFs0ll_BFu0i_BFs0s_BFs0ll { signed long long :0; unsigned int :0; signed short :0; signed long long :0; };
struct BFs0ll_BFu0i_BFs0s_BFs0s { signed long long :0; unsigned int :0; signed short :0; signed short :0; };
struct BFs0ll_BFu0i_BFs0s_BFu0c { signed long long :0; unsigned int :0; signed short :0; unsigned char :0; };
struct BFs0ll_BFu0i_BFs0s_BFu0i { signed long long :0; unsigned int :0; signed short :0; unsigned int :0; };
struct BFs0ll_BFu0i_BFs0s_BFu0ll { signed long long :0; unsigned int :0; signed short :0; unsigned long long :0; };
struct BFs0ll_BFu0i_BFs0s_BFu0s { signed long long :0; unsigned int :0; signed short :0; unsigned short :0; };
struct BFs0ll_BFu0i_BFu0c { signed long long :0; unsigned int :0; unsigned char :0; };
struct BFs0ll_BFu0i_BFu0c_BFs0c { signed long long :0; unsigned int :0; unsigned char :0; signed char :0; };
struct BFs0ll_BFu0i_BFu0c_BFs0i { signed long long :0; unsigned int :0; unsigned char :0; signed int :0; };
struct BFs0ll_BFu0i_BFu0c_BFs0ll { signed long long :0; unsigned int :0; unsigned char :0; signed long long :0; };
struct BFs0ll_BFu0i_BFu0c_BFs0s { signed long long :0; unsigned int :0; unsigned char :0; signed short :0; };
struct BFs0ll_BFu0i_BFu0c_BFu0c { signed long long :0; unsigned int :0; unsigned char :0; unsigned char :0; };
struct BFs0ll_BFu0i_BFu0c_BFu0i { signed long long :0; unsigned int :0; unsigned char :0; unsigned int :0; };
struct BFs0ll_BFu0i_BFu0c_BFu0ll { signed long long :0; unsigned int :0; unsigned char :0; unsigned long long :0; };
struct BFs0ll_BFu0i_BFu0c_BFu0s { signed long long :0; unsigned int :0; unsigned char :0; unsigned short :0; };
struct BFs0ll_BFu0i_BFu0i { signed long long :0; unsigned int :0; unsigned int :0; };
struct BFs0ll_BFu0i_BFu0i_BFs0c { signed long long :0; unsigned int :0; unsigned int :0; signed char :0; };
struct BFs0ll_BFu0i_BFu0i_BFs0i { signed long long :0; unsigned int :0; unsigned int :0; signed int :0; };
struct BFs0ll_BFu0i_BFu0i_BFs0ll { signed long long :0; unsigned int :0; unsigned int :0; signed long long :0; };
struct BFs0ll_BFu0i_BFu0i_BFs0s { signed long long :0; unsigned int :0; unsigned int :0; signed short :0; };
struct BFs0ll_BFu0i_BFu0i_BFu0c { signed long long :0; unsigned int :0; unsigned int :0; unsigned char :0; };
struct BFs0ll_BFu0i_BFu0i_BFu0i { signed long long :0; unsigned int :0; unsigned int :0; unsigned int :0; };
struct BFs0ll_BFu0i_BFu0i_BFu0ll { signed long long :0; unsigned int :0; unsigned int :0; unsigned long long :0; };
struct BFs0ll_BFu0i_BFu0i_BFu0s { signed long long :0; unsigned int :0; unsigned int :0; unsigned short :0; };
struct BFs0ll_BFu0i_BFu0ll { signed long long :0; unsigned int :0; unsigned long long :0; };
struct BFs0ll_BFu0i_BFu0ll_BFs0c { signed long long :0; unsigned int :0; unsigned long long :0; signed char :0; };
struct BFs0ll_BFu0i_BFu0ll_BFs0i { signed long long :0; unsigned int :0; unsigned long long :0; signed int :0; };
struct BFs0ll_BFu0i_BFu0ll_BFs0ll { signed long long :0; unsigned int :0; unsigned long long :0; signed long long :0; };
struct BFs0ll_BFu0i_BFu0ll_BFs0s { signed long long :0; unsigned int :0; unsigned long long :0; signed short :0; };
struct BFs0ll_BFu0i_BFu0ll_BFu0c { signed long long :0; unsigned int :0; unsigned long long :0; unsigned char :0; };
struct BFs0ll_BFu0i_BFu0ll_BFu0i { signed long long :0; unsigned int :0; unsigned long long :0; unsigned int :0; };
struct BFs0ll_BFu0i_BFu0ll_BFu0ll { signed long long :0; unsigned int :0; unsigned long long :0; unsigned long long :0; };
struct BFs0ll_BFu0i_BFu0ll_BFu0s { signed long long :0; unsigned int :0; unsigned long long :0; unsigned short :0; };
struct BFs0ll_BFu0i_BFu0s { signed long long :0; unsigned int :0; unsigned short :0; };
struct BFs0ll_BFu0i_BFu0s_BFs0c { signed long long :0; unsigned int :0; unsigned short :0; signed char :0; };
struct BFs0ll_BFu0i_BFu0s_BFs0i { signed long long :0; unsigned int :0; unsigned short :0; signed int :0; };
struct BFs0ll_BFu0i_BFu0s_BFs0ll { signed long long :0; unsigned int :0; unsigned short :0; signed long long :0; };
struct BFs0ll_BFu0i_BFu0s_BFs0s { signed long long :0; unsigned int :0; unsigned short :0; signed short :0; };
struct BFs0ll_BFu0i_BFu0s_BFu0c { signed long long :0; unsigned int :0; unsigned short :0; unsigned char :0; };
struct BFs0ll_BFu0i_BFu0s_BFu0i { signed long long :0; unsigned int :0; unsigned short :0; unsigned int :0; };
struct BFs0ll_BFu0i_BFu0s_BFu0ll { signed long long :0; unsigned int :0; unsigned short :0; unsigned long long :0; };
struct BFs0ll_BFu0i_BFu0s_BFu0s { signed long long :0; unsigned int :0; unsigned short :0; unsigned short :0; };
struct BFs0ll_BFu0ll { signed long long :0; unsigned long long :0; };
struct BFs0ll_BFu0ll_BFs0c { signed long long :0; unsigned long long :0; signed char :0; };
struct BFs0ll_BFu0ll_BFs0c_BFs0c { signed long long :0; unsigned long long :0; signed char :0; signed char :0; };
struct BFs0ll_BFu0ll_BFs0c_BFs0i { signed long long :0; unsigned long long :0; signed char :0; signed int :0; };
struct BFs0ll_BFu0ll_BFs0c_BFs0ll { signed long long :0; unsigned long long :0; signed char :0; signed long long :0; };
struct BFs0ll_BFu0ll_BFs0c_BFs0s { signed long long :0; unsigned long long :0; signed char :0; signed short :0; };
struct BFs0ll_BFu0ll_BFs0c_BFu0c { signed long long :0; unsigned long long :0; signed char :0; unsigned char :0; };
struct BFs0ll_BFu0ll_BFs0c_BFu0i { signed long long :0; unsigned long long :0; signed char :0; unsigned int :0; };
struct BFs0ll_BFu0ll_BFs0c_BFu0ll { signed long long :0; unsigned long long :0; signed char :0; unsigned long long :0; };
struct BFs0ll_BFu0ll_BFs0c_BFu0s { signed long long :0; unsigned long long :0; signed char :0; unsigned short :0; };
struct BFs0ll_BFu0ll_BFs0i { signed long long :0; unsigned long long :0; signed int :0; };
struct BFs0ll_BFu0ll_BFs0i_BFs0c { signed long long :0; unsigned long long :0; signed int :0; signed char :0; };
struct BFs0ll_BFu0ll_BFs0i_BFs0i { signed long long :0; unsigned long long :0; signed int :0; signed int :0; };
struct BFs0ll_BFu0ll_BFs0i_BFs0ll { signed long long :0; unsigned long long :0; signed int :0; signed long long :0; };
struct BFs0ll_BFu0ll_BFs0i_BFs0s { signed long long :0; unsigned long long :0; signed int :0; signed short :0; };
struct BFs0ll_BFu0ll_BFs0i_BFu0c { signed long long :0; unsigned long long :0; signed int :0; unsigned char :0; };
struct BFs0ll_BFu0ll_BFs0i_BFu0i { signed long long :0; unsigned long long :0; signed int :0; unsigned int :0; };
struct BFs0ll_BFu0ll_BFs0i_BFu0ll { signed long long :0; unsigned long long :0; signed int :0; unsigned long long :0; };
struct BFs0ll_BFu0ll_BFs0i_BFu0s { signed long long :0; unsigned long long :0; signed int :0; unsigned short :0; };
struct BFs0ll_BFu0ll_BFs0ll { signed long long :0; unsigned long long :0; signed long long :0; };
struct BFs0ll_BFu0ll_BFs0ll_BFs0c { signed long long :0; unsigned long long :0; signed long long :0; signed char :0; };
struct BFs0ll_BFu0ll_BFs0ll_BFs0i { signed long long :0; unsigned long long :0; signed long long :0; signed int :0; };
struct BFs0ll_BFu0ll_BFs0ll_BFs0ll { signed long long :0; unsigned long long :0; signed long long :0; signed long long :0; };
struct BFs0ll_BFu0ll_BFs0ll_BFs0s { signed long long :0; unsigned long long :0; signed long long :0; signed short :0; };
struct BFs0ll_BFu0ll_BFs0ll_BFu0c { signed long long :0; unsigned long long :0; signed long long :0; unsigned char :0; };
struct BFs0ll_BFu0ll_BFs0ll_BFu0i { signed long long :0; unsigned long long :0; signed long long :0; unsigned int :0; };
struct BFs0ll_BFu0ll_BFs0ll_BFu0ll { signed long long :0; unsigned long long :0; signed long long :0; unsigned long long :0; };
struct BFs0ll_BFu0ll_BFs0ll_BFu0s { signed long long :0; unsigned long long :0; signed long long :0; unsigned short :0; };
struct BFs0ll_BFu0ll_BFs0s { signed long long :0; unsigned long long :0; signed short :0; };
struct BFs0ll_BFu0ll_BFs0s_BFs0c { signed long long :0; unsigned long long :0; signed short :0; signed char :0; };
struct BFs0ll_BFu0ll_BFs0s_BFs0i { signed long long :0; unsigned long long :0; signed short :0; signed int :0; };
struct BFs0ll_BFu0ll_BFs0s_BFs0ll { signed long long :0; unsigned long long :0; signed short :0; signed long long :0; };
struct BFs0ll_BFu0ll_BFs0s_BFs0s { signed long long :0; unsigned long long :0; signed short :0; signed short :0; };
struct BFs0ll_BFu0ll_BFs0s_BFu0c { signed long long :0; unsigned long long :0; signed short :0; unsigned char :0; };
struct BFs0ll_BFu0ll_BFs0s_BFu0i { signed long long :0; unsigned long long :0; signed short :0; unsigned int :0; };
struct BFs0ll_BFu0ll_BFs0s_BFu0ll { signed long long :0; unsigned long long :0; signed short :0; unsigned long long :0; };
struct BFs0ll_BFu0ll_BFs0s_BFu0s { signed long long :0; unsigned long long :0; signed short :0; unsigned short :0; };
struct BFs0ll_BFu0ll_BFu0c { signed long long :0; unsigned long long :0; unsigned char :0; };
struct BFs0ll_BFu0ll_BFu0c_BFs0c { signed long long :0; unsigned long long :0; unsigned char :0; signed char :0; };
struct BFs0ll_BFu0ll_BFu0c_BFs0i { signed long long :0; unsigned long long :0; unsigned char :0; signed int :0; };
struct BFs0ll_BFu0ll_BFu0c_BFs0ll { signed long long :0; unsigned long long :0; unsigned char :0; signed long long :0; };
struct BFs0ll_BFu0ll_BFu0c_BFs0s { signed long long :0; unsigned long long :0; unsigned char :0; signed short :0; };
struct BFs0ll_BFu0ll_BFu0c_BFu0c { signed long long :0; unsigned long long :0; unsigned char :0; unsigned char :0; };
struct BFs0ll_BFu0ll_BFu0c_BFu0i { signed long long :0; unsigned long long :0; unsigned char :0; unsigned int :0; };
struct BFs0ll_BFu0ll_BFu0c_BFu0ll { signed long long :0; unsigned long long :0; unsigned char :0; unsigned long long :0; };
struct BFs0ll_BFu0ll_BFu0c_BFu0s { signed long long :0; unsigned long long :0; unsigned char :0; unsigned short :0; };
struct BFs0ll_BFu0ll_BFu0i { signed long long :0; unsigned long long :0; unsigned int :0; };
struct BFs0ll_BFu0ll_BFu0i_BFs0c { signed long long :0; unsigned long long :0; unsigned int :0; signed char :0; };
struct BFs0ll_BFu0ll_BFu0i_BFs0i { signed long long :0; unsigned long long :0; unsigned int :0; signed int :0; };
struct BFs0ll_BFu0ll_BFu0i_BFs0ll { signed long long :0; unsigned long long :0; unsigned int :0; signed long long :0; };
struct BFs0ll_BFu0ll_BFu0i_BFs0s { signed long long :0; unsigned long long :0; unsigned int :0; signed short :0; };
struct BFs0ll_BFu0ll_BFu0i_BFu0c { signed long long :0; unsigned long long :0; unsigned int :0; unsigned char :0; };
struct BFs0ll_BFu0ll_BFu0i_BFu0i { signed long long :0; unsigned long long :0; unsigned int :0; unsigned int :0; };
struct BFs0ll_BFu0ll_BFu0i_BFu0ll { signed long long :0; unsigned long long :0; unsigned int :0; unsigned long long :0; };
struct BFs0ll_BFu0ll_BFu0i_BFu0s { signed long long :0; unsigned long long :0; unsigned int :0; unsigned short :0; };
struct BFs0ll_BFu0ll_BFu0ll { signed long long :0; unsigned long long :0; unsigned long long :0; };
struct BFs0ll_BFu0ll_BFu0ll_BFs0c { signed long long :0; unsigned long long :0; unsigned long long :0; signed char :0; };
struct BFs0ll_BFu0ll_BFu0ll_BFs0i { signed long long :0; unsigned long long :0; unsigned long long :0; signed int :0; };
struct BFs0ll_BFu0ll_BFu0ll_BFs0ll { signed long long :0; unsigned long long :0; unsigned long long :0; signed long long :0; };
struct BFs0ll_BFu0ll_BFu0ll_BFs0s { signed long long :0; unsigned long long :0; unsigned long long :0; signed short :0; };
struct BFs0ll_BFu0ll_BFu0ll_BFu0c { signed long long :0; unsigned long long :0; unsigned long long :0; unsigned char :0; };
struct BFs0ll_BFu0ll_BFu0ll_BFu0i { signed long long :0; unsigned long long :0; unsigned long long :0; unsigned int :0; };
struct BFs0ll_BFu0ll_BFu0ll_BFu0ll { signed long long :0; unsigned long long :0; unsigned long long :0; unsigned long long :0; };
struct BFs0ll_BFu0ll_BFu0ll_BFu0s { signed long long :0; unsigned long long :0; unsigned long long :0; unsigned short :0; };
struct BFs0ll_BFu0ll_BFu0s { signed long long :0; unsigned long long :0; unsigned short :0; };
struct BFs0ll_BFu0ll_BFu0s_BFs0c { signed long long :0; unsigned long long :0; unsigned short :0; signed char :0; };
struct BFs0ll_BFu0ll_BFu0s_BFs0i { signed long long :0; unsigned long long :0; unsigned short :0; signed int :0; };
struct BFs0ll_BFu0ll_BFu0s_BFs0ll { signed long long :0; unsigned long long :0; unsigned short :0; signed long long :0; };
struct BFs0ll_BFu0ll_BFu0s_BFs0s { signed long long :0; unsigned long long :0; unsigned short :0; signed short :0; };
struct BFs0ll_BFu0ll_BFu0s_BFu0c { signed long long :0; unsigned long long :0; unsigned short :0; unsigned char :0; };
struct BFs0ll_BFu0ll_BFu0s_BFu0i { signed long long :0; unsigned long long :0; unsigned short :0; unsigned int :0; };
struct BFs0ll_BFu0ll_BFu0s_BFu0ll { signed long long :0; unsigned long long :0; unsigned short :0; unsigned long long :0; };
struct BFs0ll_BFu0ll_BFu0s_BFu0s { signed long long :0; unsigned long long :0; unsigned short :0; unsigned short :0; };
struct BFs0ll_BFu0s { signed long long :0; unsigned short :0; };
struct BFs0ll_BFu0s_BFs0c { signed long long :0; unsigned short :0; signed char :0; };
struct BFs0ll_BFu0s_BFs0c_BFs0c { signed long long :0; unsigned short :0; signed char :0; signed char :0; };
struct BFs0ll_BFu0s_BFs0c_BFs0i { signed long long :0; unsigned short :0; signed char :0; signed int :0; };
struct BFs0ll_BFu0s_BFs0c_BFs0ll { signed long long :0; unsigned short :0; signed char :0; signed long long :0; };
struct BFs0ll_BFu0s_BFs0c_BFs0s { signed long long :0; unsigned short :0; signed char :0; signed short :0; };
struct BFs0ll_BFu0s_BFs0c_BFu0c { signed long long :0; unsigned short :0; signed char :0; unsigned char :0; };
struct BFs0ll_BFu0s_BFs0c_BFu0i { signed long long :0; unsigned short :0; signed char :0; unsigned int :0; };
struct BFs0ll_BFu0s_BFs0c_BFu0ll { signed long long :0; unsigned short :0; signed char :0; unsigned long long :0; };
struct BFs0ll_BFu0s_BFs0c_BFu0s { signed long long :0; unsigned short :0; signed char :0; unsigned short :0; };
struct BFs0ll_BFu0s_BFs0i { signed long long :0; unsigned short :0; signed int :0; };
struct BFs0ll_BFu0s_BFs0i_BFs0c { signed long long :0; unsigned short :0; signed int :0; signed char :0; };
struct BFs0ll_BFu0s_BFs0i_BFs0i { signed long long :0; unsigned short :0; signed int :0; signed int :0; };
struct BFs0ll_BFu0s_BFs0i_BFs0ll { signed long long :0; unsigned short :0; signed int :0; signed long long :0; };
struct BFs0ll_BFu0s_BFs0i_BFs0s { signed long long :0; unsigned short :0; signed int :0; signed short :0; };
struct BFs0ll_BFu0s_BFs0i_BFu0c { signed long long :0; unsigned short :0; signed int :0; unsigned char :0; };
struct BFs0ll_BFu0s_BFs0i_BFu0i { signed long long :0; unsigned short :0; signed int :0; unsigned int :0; };
struct BFs0ll_BFu0s_BFs0i_BFu0ll { signed long long :0; unsigned short :0; signed int :0; unsigned long long :0; };
struct BFs0ll_BFu0s_BFs0i_BFu0s { signed long long :0; unsigned short :0; signed int :0; unsigned short :0; };
struct BFs0ll_BFu0s_BFs0ll { signed long long :0; unsigned short :0; signed long long :0; };
struct BFs0ll_BFu0s_BFs0ll_BFs0c { signed long long :0; unsigned short :0; signed long long :0; signed char :0; };
struct BFs0ll_BFu0s_BFs0ll_BFs0i { signed long long :0; unsigned short :0; signed long long :0; signed int :0; };
struct BFs0ll_BFu0s_BFs0ll_BFs0ll { signed long long :0; unsigned short :0; signed long long :0; signed long long :0; };
struct BFs0ll_BFu0s_BFs0ll_BFs0s { signed long long :0; unsigned short :0; signed long long :0; signed short :0; };
struct BFs0ll_BFu0s_BFs0ll_BFu0c { signed long long :0; unsigned short :0; signed long long :0; unsigned char :0; };
struct BFs0ll_BFu0s_BFs0ll_BFu0i { signed long long :0; unsigned short :0; signed long long :0; unsigned int :0; };
struct BFs0ll_BFu0s_BFs0ll_BFu0ll { signed long long :0; unsigned short :0; signed long long :0; unsigned long long :0; };
struct BFs0ll_BFu0s_BFs0ll_BFu0s { signed long long :0; unsigned short :0; signed long long :0; unsigned short :0; };
struct BFs0ll_BFu0s_BFs0s { signed long long :0; unsigned short :0; signed short :0; };
struct BFs0ll_BFu0s_BFs0s_BFs0c { signed long long :0; unsigned short :0; signed short :0; signed char :0; };
struct BFs0ll_BFu0s_BFs0s_BFs0i { signed long long :0; unsigned short :0; signed short :0; signed int :0; };
struct BFs0ll_BFu0s_BFs0s_BFs0ll { signed long long :0; unsigned short :0; signed short :0; signed long long :0; };
struct BFs0ll_BFu0s_BFs0s_BFs0s { signed long long :0; unsigned short :0; signed short :0; signed short :0; };
struct BFs0ll_BFu0s_BFs0s_BFu0c { signed long long :0; unsigned short :0; signed short :0; unsigned char :0; };
struct BFs0ll_BFu0s_BFs0s_BFu0i { signed long long :0; unsigned short :0; signed short :0; unsigned int :0; };
struct BFs0ll_BFu0s_BFs0s_BFu0ll { signed long long :0; unsigned short :0; signed short :0; unsigned long long :0; };
struct BFs0ll_BFu0s_BFs0s_BFu0s { signed long long :0; unsigned short :0; signed short :0; unsigned short :0; };
struct BFs0ll_BFu0s_BFu0c { signed long long :0; unsigned short :0; unsigned char :0; };
struct BFs0ll_BFu0s_BFu0c_BFs0c { signed long long :0; unsigned short :0; unsigned char :0; signed char :0; };
struct BFs0ll_BFu0s_BFu0c_BFs0i { signed long long :0; unsigned short :0; unsigned char :0; signed int :0; };
struct BFs0ll_BFu0s_BFu0c_BFs0ll { signed long long :0; unsigned short :0; unsigned char :0; signed long long :0; };
struct BFs0ll_BFu0s_BFu0c_BFs0s { signed long long :0; unsigned short :0; unsigned char :0; signed short :0; };
struct BFs0ll_BFu0s_BFu0c_BFu0c { signed long long :0; unsigned short :0; unsigned char :0; unsigned char :0; };
struct BFs0ll_BFu0s_BFu0c_BFu0i { signed long long :0; unsigned short :0; unsigned char :0; unsigned int :0; };
struct BFs0ll_BFu0s_BFu0c_BFu0ll { signed long long :0; unsigned short :0; unsigned char :0; unsigned long long :0; };
struct BFs0ll_BFu0s_BFu0c_BFu0s { signed long long :0; unsigned short :0; unsigned char :0; unsigned short :0; };
struct BFs0ll_BFu0s_BFu0i { signed long long :0; unsigned short :0; unsigned int :0; };
struct BFs0ll_BFu0s_BFu0i_BFs0c { signed long long :0; unsigned short :0; unsigned int :0; signed char :0; };
struct BFs0ll_BFu0s_BFu0i_BFs0i { signed long long :0; unsigned short :0; unsigned int :0; signed int :0; };
struct BFs0ll_BFu0s_BFu0i_BFs0ll { signed long long :0; unsigned short :0; unsigned int :0; signed long long :0; };
struct BFs0ll_BFu0s_BFu0i_BFs0s { signed long long :0; unsigned short :0; unsigned int :0; signed short :0; };
struct BFs0ll_BFu0s_BFu0i_BFu0c { signed long long :0; unsigned short :0; unsigned int :0; unsigned char :0; };
struct BFs0ll_BFu0s_BFu0i_BFu0i { signed long long :0; unsigned short :0; unsigned int :0; unsigned int :0; };
struct BFs0ll_BFu0s_BFu0i_BFu0ll { signed long long :0; unsigned short :0; unsigned int :0; unsigned long long :0; };
struct BFs0ll_BFu0s_BFu0i_BFu0s { signed long long :0; unsigned short :0; unsigned int :0; unsigned short :0; };
struct BFs0ll_BFu0s_BFu0ll { signed long long :0; unsigned short :0; unsigned long long :0; };
struct BFs0ll_BFu0s_BFu0ll_BFs0c { signed long long :0; unsigned short :0; unsigned long long :0; signed char :0; };
struct BFs0ll_BFu0s_BFu0ll_BFs0i { signed long long :0; unsigned short :0; unsigned long long :0; signed int :0; };
struct BFs0ll_BFu0s_BFu0ll_BFs0ll { signed long long :0; unsigned short :0; unsigned long long :0; signed long long :0; };
struct BFs0ll_BFu0s_BFu0ll_BFs0s { signed long long :0; unsigned short :0; unsigned long long :0; signed short :0; };
struct BFs0ll_BFu0s_BFu0ll_BFu0c { signed long long :0; unsigned short :0; unsigned long long :0; unsigned char :0; };
struct BFs0ll_BFu0s_BFu0ll_BFu0i { signed long long :0; unsigned short :0; unsigned long long :0; unsigned int :0; };
struct BFs0ll_BFu0s_BFu0ll_BFu0ll { signed long long :0; unsigned short :0; unsigned long long :0; unsigned long long :0; };
struct BFs0ll_BFu0s_BFu0ll_BFu0s { signed long long :0; unsigned short :0; unsigned long long :0; unsigned short :0; };
struct BFs0ll_BFu0s_BFu0s { signed long long :0; unsigned short :0; unsigned short :0; };
struct BFs0ll_BFu0s_BFu0s_BFs0c { signed long long :0; unsigned short :0; unsigned short :0; signed char :0; };
struct BFs0ll_BFu0s_BFu0s_BFs0i { signed long long :0; unsigned short :0; unsigned short :0; signed int :0; };
struct BFs0ll_BFu0s_BFu0s_BFs0ll { signed long long :0; unsigned short :0; unsigned short :0; signed long long :0; };
struct BFs0ll_BFu0s_BFu0s_BFs0s { signed long long :0; unsigned short :0; unsigned short :0; signed short :0; };
struct BFs0ll_BFu0s_BFu0s_BFu0c { signed long long :0; unsigned short :0; unsigned short :0; unsigned char :0; };
struct BFs0ll_BFu0s_BFu0s_BFu0i { signed long long :0; unsigned short :0; unsigned short :0; unsigned int :0; };
struct BFs0ll_BFu0s_BFu0s_BFu0ll { signed long long :0; unsigned short :0; unsigned short :0; unsigned long long :0; };
struct BFs0ll_BFu0s_BFu0s_BFu0s { signed long long :0; unsigned short :0; unsigned short :0; unsigned short :0; };
struct BFs0s_BFs0c { signed short :0; signed char :0; };
struct BFs0s_BFs0c_BFs0c { signed short :0; signed char :0; signed char :0; };
struct BFs0s_BFs0c_BFs0c_BFs0c { signed short :0; signed char :0; signed char :0; signed char :0; };
struct BFs0s_BFs0c_BFs0c_BFs0i { signed short :0; signed char :0; signed char :0; signed int :0; };
struct BFs0s_BFs0c_BFs0c_BFs0ll { signed short :0; signed char :0; signed char :0; signed long long :0; };
struct BFs0s_BFs0c_BFs0c_BFs0s { signed short :0; signed char :0; signed char :0; signed short :0; };
struct BFs0s_BFs0c_BFs0c_BFu0c { signed short :0; signed char :0; signed char :0; unsigned char :0; };
struct BFs0s_BFs0c_BFs0c_BFu0i { signed short :0; signed char :0; signed char :0; unsigned int :0; };
struct BFs0s_BFs0c_BFs0c_BFu0ll { signed short :0; signed char :0; signed char :0; unsigned long long :0; };
struct BFs0s_BFs0c_BFs0c_BFu0s { signed short :0; signed char :0; signed char :0; unsigned short :0; };
struct BFs0s_BFs0c_BFs0i { signed short :0; signed char :0; signed int :0; };
struct BFs0s_BFs0c_BFs0i_BFs0c { signed short :0; signed char :0; signed int :0; signed char :0; };
struct BFs0s_BFs0c_BFs0i_BFs0i { signed short :0; signed char :0; signed int :0; signed int :0; };
struct BFs0s_BFs0c_BFs0i_BFs0ll { signed short :0; signed char :0; signed int :0; signed long long :0; };
struct BFs0s_BFs0c_BFs0i_BFs0s { signed short :0; signed char :0; signed int :0; signed short :0; };
struct BFs0s_BFs0c_BFs0i_BFu0c { signed short :0; signed char :0; signed int :0; unsigned char :0; };
struct BFs0s_BFs0c_BFs0i_BFu0i { signed short :0; signed char :0; signed int :0; unsigned int :0; };
struct BFs0s_BFs0c_BFs0i_BFu0ll { signed short :0; signed char :0; signed int :0; unsigned long long :0; };
struct BFs0s_BFs0c_BFs0i_BFu0s { signed short :0; signed char :0; signed int :0; unsigned short :0; };
struct BFs0s_BFs0c_BFs0ll { signed short :0; signed char :0; signed long long :0; };
struct BFs0s_BFs0c_BFs0ll_BFs0c { signed short :0; signed char :0; signed long long :0; signed char :0; };
struct BFs0s_BFs0c_BFs0ll_BFs0i { signed short :0; signed char :0; signed long long :0; signed int :0; };
struct BFs0s_BFs0c_BFs0ll_BFs0ll { signed short :0; signed char :0; signed long long :0; signed long long :0; };
struct BFs0s_BFs0c_BFs0ll_BFs0s { signed short :0; signed char :0; signed long long :0; signed short :0; };
struct BFs0s_BFs0c_BFs0ll_BFu0c { signed short :0; signed char :0; signed long long :0; unsigned char :0; };
struct BFs0s_BFs0c_BFs0ll_BFu0i { signed short :0; signed char :0; signed long long :0; unsigned int :0; };
struct BFs0s_BFs0c_BFs0ll_BFu0ll { signed short :0; signed char :0; signed long long :0; unsigned long long :0; };
struct BFs0s_BFs0c_BFs0ll_BFu0s { signed short :0; signed char :0; signed long long :0; unsigned short :0; };
struct BFs0s_BFs0c_BFs0s { signed short :0; signed char :0; signed short :0; };
struct BFs0s_BFs0c_BFs0s_BFs0c { signed short :0; signed char :0; signed short :0; signed char :0; };
struct BFs0s_BFs0c_BFs0s_BFs0i { signed short :0; signed char :0; signed short :0; signed int :0; };
struct BFs0s_BFs0c_BFs0s_BFs0ll { signed short :0; signed char :0; signed short :0; signed long long :0; };
struct BFs0s_BFs0c_BFs0s_BFs0s { signed short :0; signed char :0; signed short :0; signed short :0; };
struct BFs0s_BFs0c_BFs0s_BFu0c { signed short :0; signed char :0; signed short :0; unsigned char :0; };
struct BFs0s_BFs0c_BFs0s_BFu0i { signed short :0; signed char :0; signed short :0; unsigned int :0; };
struct BFs0s_BFs0c_BFs0s_BFu0ll { signed short :0; signed char :0; signed short :0; unsigned long long :0; };
struct BFs0s_BFs0c_BFs0s_BFu0s { signed short :0; signed char :0; signed short :0; unsigned short :0; };
struct BFs0s_BFs0c_BFu0c { signed short :0; signed char :0; unsigned char :0; };
struct BFs0s_BFs0c_BFu0c_BFs0c { signed short :0; signed char :0; unsigned char :0; signed char :0; };
struct BFs0s_BFs0c_BFu0c_BFs0i { signed short :0; signed char :0; unsigned char :0; signed int :0; };
struct BFs0s_BFs0c_BFu0c_BFs0ll { signed short :0; signed char :0; unsigned char :0; signed long long :0; };
struct BFs0s_BFs0c_BFu0c_BFs0s { signed short :0; signed char :0; unsigned char :0; signed short :0; };
struct BFs0s_BFs0c_BFu0c_BFu0c { signed short :0; signed char :0; unsigned char :0; unsigned char :0; };
struct BFs0s_BFs0c_BFu0c_BFu0i { signed short :0; signed char :0; unsigned char :0; unsigned int :0; };
struct BFs0s_BFs0c_BFu0c_BFu0ll { signed short :0; signed char :0; unsigned char :0; unsigned long long :0; };
struct BFs0s_BFs0c_BFu0c_BFu0s { signed short :0; signed char :0; unsigned char :0; unsigned short :0; };
struct BFs0s_BFs0c_BFu0i { signed short :0; signed char :0; unsigned int :0; };
struct BFs0s_BFs0c_BFu0i_BFs0c { signed short :0; signed char :0; unsigned int :0; signed char :0; };
struct BFs0s_BFs0c_BFu0i_BFs0i { signed short :0; signed char :0; unsigned int :0; signed int :0; };
struct BFs0s_BFs0c_BFu0i_BFs0ll { signed short :0; signed char :0; unsigned int :0; signed long long :0; };
struct BFs0s_BFs0c_BFu0i_BFs0s { signed short :0; signed char :0; unsigned int :0; signed short :0; };
struct BFs0s_BFs0c_BFu0i_BFu0c { signed short :0; signed char :0; unsigned int :0; unsigned char :0; };
struct BFs0s_BFs0c_BFu0i_BFu0i { signed short :0; signed char :0; unsigned int :0; unsigned int :0; };
struct BFs0s_BFs0c_BFu0i_BFu0ll { signed short :0; signed char :0; unsigned int :0; unsigned long long :0; };
struct BFs0s_BFs0c_BFu0i_BFu0s { signed short :0; signed char :0; unsigned int :0; unsigned short :0; };
struct BFs0s_BFs0c_BFu0ll { signed short :0; signed char :0; unsigned long long :0; };
struct BFs0s_BFs0c_BFu0ll_BFs0c { signed short :0; signed char :0; unsigned long long :0; signed char :0; };
struct BFs0s_BFs0c_BFu0ll_BFs0i { signed short :0; signed char :0; unsigned long long :0; signed int :0; };
struct BFs0s_BFs0c_BFu0ll_BFs0ll { signed short :0; signed char :0; unsigned long long :0; signed long long :0; };
struct BFs0s_BFs0c_BFu0ll_BFs0s { signed short :0; signed char :0; unsigned long long :0; signed short :0; };
struct BFs0s_BFs0c_BFu0ll_BFu0c { signed short :0; signed char :0; unsigned long long :0; unsigned char :0; };
struct BFs0s_BFs0c_BFu0ll_BFu0i { signed short :0; signed char :0; unsigned long long :0; unsigned int :0; };
struct BFs0s_BFs0c_BFu0ll_BFu0ll { signed short :0; signed char :0; unsigned long long :0; unsigned long long :0; };
struct BFs0s_BFs0c_BFu0ll_BFu0s { signed short :0; signed char :0; unsigned long long :0; unsigned short :0; };
struct BFs0s_BFs0c_BFu0s { signed short :0; signed char :0; unsigned short :0; };
struct BFs0s_BFs0c_BFu0s_BFs0c { signed short :0; signed char :0; unsigned short :0; signed char :0; };
struct BFs0s_BFs0c_BFu0s_BFs0i { signed short :0; signed char :0; unsigned short :0; signed int :0; };
struct BFs0s_BFs0c_BFu0s_BFs0ll { signed short :0; signed char :0; unsigned short :0; signed long long :0; };
struct BFs0s_BFs0c_BFu0s_BFs0s { signed short :0; signed char :0; unsigned short :0; signed short :0; };
struct BFs0s_BFs0c_BFu0s_BFu0c { signed short :0; signed char :0; unsigned short :0; unsigned char :0; };
struct BFs0s_BFs0c_BFu0s_BFu0i { signed short :0; signed char :0; unsigned short :0; unsigned int :0; };
struct BFs0s_BFs0c_BFu0s_BFu0ll { signed short :0; signed char :0; unsigned short :0; unsigned long long :0; };
struct BFs0s_BFs0c_BFu0s_BFu0s { signed short :0; signed char :0; unsigned short :0; unsigned short :0; };
struct BFs0s_BFs0i { signed short :0; signed int :0; };
struct BFs0s_BFs0i_BFs0c { signed short :0; signed int :0; signed char :0; };
struct BFs0s_BFs0i_BFs0c_BFs0c { signed short :0; signed int :0; signed char :0; signed char :0; };
struct BFs0s_BFs0i_BFs0c_BFs0i { signed short :0; signed int :0; signed char :0; signed int :0; };
struct BFs0s_BFs0i_BFs0c_BFs0ll { signed short :0; signed int :0; signed char :0; signed long long :0; };
struct BFs0s_BFs0i_BFs0c_BFs0s { signed short :0; signed int :0; signed char :0; signed short :0; };
struct BFs0s_BFs0i_BFs0c_BFu0c { signed short :0; signed int :0; signed char :0; unsigned char :0; };
struct BFs0s_BFs0i_BFs0c_BFu0i { signed short :0; signed int :0; signed char :0; unsigned int :0; };
struct BFs0s_BFs0i_BFs0c_BFu0ll { signed short :0; signed int :0; signed char :0; unsigned long long :0; };
struct BFs0s_BFs0i_BFs0c_BFu0s { signed short :0; signed int :0; signed char :0; unsigned short :0; };
struct BFs0s_BFs0i_BFs0i { signed short :0; signed int :0; signed int :0; };
struct BFs0s_BFs0i_BFs0i_BFs0c { signed short :0; signed int :0; signed int :0; signed char :0; };
struct BFs0s_BFs0i_BFs0i_BFs0i { signed short :0; signed int :0; signed int :0; signed int :0; };
struct BFs0s_BFs0i_BFs0i_BFs0ll { signed short :0; signed int :0; signed int :0; signed long long :0; };
struct BFs0s_BFs0i_BFs0i_BFs0s { signed short :0; signed int :0; signed int :0; signed short :0; };
struct BFs0s_BFs0i_BFs0i_BFu0c { signed short :0; signed int :0; signed int :0; unsigned char :0; };
struct BFs0s_BFs0i_BFs0i_BFu0i { signed short :0; signed int :0; signed int :0; unsigned int :0; };
struct BFs0s_BFs0i_BFs0i_BFu0ll { signed short :0; signed int :0; signed int :0; unsigned long long :0; };
struct BFs0s_BFs0i_BFs0i_BFu0s { signed short :0; signed int :0; signed int :0; unsigned short :0; };
struct BFs0s_BFs0i_BFs0ll { signed short :0; signed int :0; signed long long :0; };
struct BFs0s_BFs0i_BFs0ll_BFs0c { signed short :0; signed int :0; signed long long :0; signed char :0; };
struct BFs0s_BFs0i_BFs0ll_BFs0i { signed short :0; signed int :0; signed long long :0; signed int :0; };
struct BFs0s_BFs0i_BFs0ll_BFs0ll { signed short :0; signed int :0; signed long long :0; signed long long :0; };
struct BFs0s_BFs0i_BFs0ll_BFs0s { signed short :0; signed int :0; signed long long :0; signed short :0; };
struct BFs0s_BFs0i_BFs0ll_BFu0c { signed short :0; signed int :0; signed long long :0; unsigned char :0; };
struct BFs0s_BFs0i_BFs0ll_BFu0i { signed short :0; signed int :0; signed long long :0; unsigned int :0; };
struct BFs0s_BFs0i_BFs0ll_BFu0ll { signed short :0; signed int :0; signed long long :0; unsigned long long :0; };
struct BFs0s_BFs0i_BFs0ll_BFu0s { signed short :0; signed int :0; signed long long :0; unsigned short :0; };
struct BFs0s_BFs0i_BFs0s { signed short :0; signed int :0; signed short :0; };
struct BFs0s_BFs0i_BFs0s_BFs0c { signed short :0; signed int :0; signed short :0; signed char :0; };
struct BFs0s_BFs0i_BFs0s_BFs0i { signed short :0; signed int :0; signed short :0; signed int :0; };
struct BFs0s_BFs0i_BFs0s_BFs0ll { signed short :0; signed int :0; signed short :0; signed long long :0; };
struct BFs0s_BFs0i_BFs0s_BFs0s { signed short :0; signed int :0; signed short :0; signed short :0; };
struct BFs0s_BFs0i_BFs0s_BFu0c { signed short :0; signed int :0; signed short :0; unsigned char :0; };
struct BFs0s_BFs0i_BFs0s_BFu0i { signed short :0; signed int :0; signed short :0; unsigned int :0; };
struct BFs0s_BFs0i_BFs0s_BFu0ll { signed short :0; signed int :0; signed short :0; unsigned long long :0; };
struct BFs0s_BFs0i_BFs0s_BFu0s { signed short :0; signed int :0; signed short :0; unsigned short :0; };
struct BFs0s_BFs0i_BFu0c { signed short :0; signed int :0; unsigned char :0; };
struct BFs0s_BFs0i_BFu0c_BFs0c { signed short :0; signed int :0; unsigned char :0; signed char :0; };
struct BFs0s_BFs0i_BFu0c_BFs0i { signed short :0; signed int :0; unsigned char :0; signed int :0; };
struct BFs0s_BFs0i_BFu0c_BFs0ll { signed short :0; signed int :0; unsigned char :0; signed long long :0; };
struct BFs0s_BFs0i_BFu0c_BFs0s { signed short :0; signed int :0; unsigned char :0; signed short :0; };
struct BFs0s_BFs0i_BFu0c_BFu0c { signed short :0; signed int :0; unsigned char :0; unsigned char :0; };
struct BFs0s_BFs0i_BFu0c_BFu0i { signed short :0; signed int :0; unsigned char :0; unsigned int :0; };
struct BFs0s_BFs0i_BFu0c_BFu0ll { signed short :0; signed int :0; unsigned char :0; unsigned long long :0; };
struct BFs0s_BFs0i_BFu0c_BFu0s { signed short :0; signed int :0; unsigned char :0; unsigned short :0; };
struct BFs0s_BFs0i_BFu0i { signed short :0; signed int :0; unsigned int :0; };
struct BFs0s_BFs0i_BFu0i_BFs0c { signed short :0; signed int :0; unsigned int :0; signed char :0; };
struct BFs0s_BFs0i_BFu0i_BFs0i { signed short :0; signed int :0; unsigned int :0; signed int :0; };
struct BFs0s_BFs0i_BFu0i_BFs0ll { signed short :0; signed int :0; unsigned int :0; signed long long :0; };
struct BFs0s_BFs0i_BFu0i_BFs0s { signed short :0; signed int :0; unsigned int :0; signed short :0; };
struct BFs0s_BFs0i_BFu0i_BFu0c { signed short :0; signed int :0; unsigned int :0; unsigned char :0; };
struct BFs0s_BFs0i_BFu0i_BFu0i { signed short :0; signed int :0; unsigned int :0; unsigned int :0; };
struct BFs0s_BFs0i_BFu0i_BFu0ll { signed short :0; signed int :0; unsigned int :0; unsigned long long :0; };
struct BFs0s_BFs0i_BFu0i_BFu0s { signed short :0; signed int :0; unsigned int :0; unsigned short :0; };
struct BFs0s_BFs0i_BFu0ll { signed short :0; signed int :0; unsigned long long :0; };
struct BFs0s_BFs0i_BFu0ll_BFs0c { signed short :0; signed int :0; unsigned long long :0; signed char :0; };
struct BFs0s_BFs0i_BFu0ll_BFs0i { signed short :0; signed int :0; unsigned long long :0; signed int :0; };
struct BFs0s_BFs0i_BFu0ll_BFs0ll { signed short :0; signed int :0; unsigned long long :0; signed long long :0; };
struct BFs0s_BFs0i_BFu0ll_BFs0s { signed short :0; signed int :0; unsigned long long :0; signed short :0; };
struct BFs0s_BFs0i_BFu0ll_BFu0c { signed short :0; signed int :0; unsigned long long :0; unsigned char :0; };
struct BFs0s_BFs0i_BFu0ll_BFu0i { signed short :0; signed int :0; unsigned long long :0; unsigned int :0; };
struct BFs0s_BFs0i_BFu0ll_BFu0ll { signed short :0; signed int :0; unsigned long long :0; unsigned long long :0; };
struct BFs0s_BFs0i_BFu0ll_BFu0s { signed short :0; signed int :0; unsigned long long :0; unsigned short :0; };
struct BFs0s_BFs0i_BFu0s { signed short :0; signed int :0; unsigned short :0; };
struct BFs0s_BFs0i_BFu0s_BFs0c { signed short :0; signed int :0; unsigned short :0; signed char :0; };
struct BFs0s_BFs0i_BFu0s_BFs0i { signed short :0; signed int :0; unsigned short :0; signed int :0; };
struct BFs0s_BFs0i_BFu0s_BFs0ll { signed short :0; signed int :0; unsigned short :0; signed long long :0; };
struct BFs0s_BFs0i_BFu0s_BFs0s { signed short :0; signed int :0; unsigned short :0; signed short :0; };
struct BFs0s_BFs0i_BFu0s_BFu0c { signed short :0; signed int :0; unsigned short :0; unsigned char :0; };
struct BFs0s_BFs0i_BFu0s_BFu0i { signed short :0; signed int :0; unsigned short :0; unsigned int :0; };
struct BFs0s_BFs0i_BFu0s_BFu0ll { signed short :0; signed int :0; unsigned short :0; unsigned long long :0; };
struct BFs0s_BFs0i_BFu0s_BFu0s { signed short :0; signed int :0; unsigned short :0; unsigned short :0; };
struct BFs0s_BFs0ll { signed short :0; signed long long :0; };
struct BFs0s_BFs0ll_BFs0c { signed short :0; signed long long :0; signed char :0; };
struct BFs0s_BFs0ll_BFs0c_BFs0c { signed short :0; signed long long :0; signed char :0; signed char :0; };
struct BFs0s_BFs0ll_BFs0c_BFs0i { signed short :0; signed long long :0; signed char :0; signed int :0; };
struct BFs0s_BFs0ll_BFs0c_BFs0ll { signed short :0; signed long long :0; signed char :0; signed long long :0; };
struct BFs0s_BFs0ll_BFs0c_BFs0s { signed short :0; signed long long :0; signed char :0; signed short :0; };
struct BFs0s_BFs0ll_BFs0c_BFu0c { signed short :0; signed long long :0; signed char :0; unsigned char :0; };
struct BFs0s_BFs0ll_BFs0c_BFu0i { signed short :0; signed long long :0; signed char :0; unsigned int :0; };
struct BFs0s_BFs0ll_BFs0c_BFu0ll { signed short :0; signed long long :0; signed char :0; unsigned long long :0; };
struct BFs0s_BFs0ll_BFs0c_BFu0s { signed short :0; signed long long :0; signed char :0; unsigned short :0; };
struct BFs0s_BFs0ll_BFs0i { signed short :0; signed long long :0; signed int :0; };
struct BFs0s_BFs0ll_BFs0i_BFs0c { signed short :0; signed long long :0; signed int :0; signed char :0; };
struct BFs0s_BFs0ll_BFs0i_BFs0i { signed short :0; signed long long :0; signed int :0; signed int :0; };
struct BFs0s_BFs0ll_BFs0i_BFs0ll { signed short :0; signed long long :0; signed int :0; signed long long :0; };
struct BFs0s_BFs0ll_BFs0i_BFs0s { signed short :0; signed long long :0; signed int :0; signed short :0; };
struct BFs0s_BFs0ll_BFs0i_BFu0c { signed short :0; signed long long :0; signed int :0; unsigned char :0; };
struct BFs0s_BFs0ll_BFs0i_BFu0i { signed short :0; signed long long :0; signed int :0; unsigned int :0; };
struct BFs0s_BFs0ll_BFs0i_BFu0ll { signed short :0; signed long long :0; signed int :0; unsigned long long :0; };
struct BFs0s_BFs0ll_BFs0i_BFu0s { signed short :0; signed long long :0; signed int :0; unsigned short :0; };
struct BFs0s_BFs0ll_BFs0ll { signed short :0; signed long long :0; signed long long :0; };
struct BFs0s_BFs0ll_BFs0ll_BFs0c { signed short :0; signed long long :0; signed long long :0; signed char :0; };
struct BFs0s_BFs0ll_BFs0ll_BFs0i { signed short :0; signed long long :0; signed long long :0; signed int :0; };
struct BFs0s_BFs0ll_BFs0ll_BFs0ll { signed short :0; signed long long :0; signed long long :0; signed long long :0; };
struct BFs0s_BFs0ll_BFs0ll_BFs0s { signed short :0; signed long long :0; signed long long :0; signed short :0; };
struct BFs0s_BFs0ll_BFs0ll_BFu0c { signed short :0; signed long long :0; signed long long :0; unsigned char :0; };
struct BFs0s_BFs0ll_BFs0ll_BFu0i { signed short :0; signed long long :0; signed long long :0; unsigned int :0; };
struct BFs0s_BFs0ll_BFs0ll_BFu0ll { signed short :0; signed long long :0; signed long long :0; unsigned long long :0; };
struct BFs0s_BFs0ll_BFs0ll_BFu0s { signed short :0; signed long long :0; signed long long :0; unsigned short :0; };
struct BFs0s_BFs0ll_BFs0s { signed short :0; signed long long :0; signed short :0; };
struct BFs0s_BFs0ll_BFs0s_BFs0c { signed short :0; signed long long :0; signed short :0; signed char :0; };
struct BFs0s_BFs0ll_BFs0s_BFs0i { signed short :0; signed long long :0; signed short :0; signed int :0; };
struct BFs0s_BFs0ll_BFs0s_BFs0ll { signed short :0; signed long long :0; signed short :0; signed long long :0; };
struct BFs0s_BFs0ll_BFs0s_BFs0s { signed short :0; signed long long :0; signed short :0; signed short :0; };
struct BFs0s_BFs0ll_BFs0s_BFu0c { signed short :0; signed long long :0; signed short :0; unsigned char :0; };
struct BFs0s_BFs0ll_BFs0s_BFu0i { signed short :0; signed long long :0; signed short :0; unsigned int :0; };
struct BFs0s_BFs0ll_BFs0s_BFu0ll { signed short :0; signed long long :0; signed short :0; unsigned long long :0; };
struct BFs0s_BFs0ll_BFs0s_BFu0s { signed short :0; signed long long :0; signed short :0; unsigned short :0; };
struct BFs0s_BFs0ll_BFu0c { signed short :0; signed long long :0; unsigned char :0; };
struct BFs0s_BFs0ll_BFu0c_BFs0c { signed short :0; signed long long :0; unsigned char :0; signed char :0; };
struct BFs0s_BFs0ll_BFu0c_BFs0i { signed short :0; signed long long :0; unsigned char :0; signed int :0; };
struct BFs0s_BFs0ll_BFu0c_BFs0ll { signed short :0; signed long long :0; unsigned char :0; signed long long :0; };
struct BFs0s_BFs0ll_BFu0c_BFs0s { signed short :0; signed long long :0; unsigned char :0; signed short :0; };
struct BFs0s_BFs0ll_BFu0c_BFu0c { signed short :0; signed long long :0; unsigned char :0; unsigned char :0; };
struct BFs0s_BFs0ll_BFu0c_BFu0i { signed short :0; signed long long :0; unsigned char :0; unsigned int :0; };
struct BFs0s_BFs0ll_BFu0c_BFu0ll { signed short :0; signed long long :0; unsigned char :0; unsigned long long :0; };
struct BFs0s_BFs0ll_BFu0c_BFu0s { signed short :0; signed long long :0; unsigned char :0; unsigned short :0; };
struct BFs0s_BFs0ll_BFu0i { signed short :0; signed long long :0; unsigned int :0; };
struct BFs0s_BFs0ll_BFu0i_BFs0c { signed short :0; signed long long :0; unsigned int :0; signed char :0; };
struct BFs0s_BFs0ll_BFu0i_BFs0i { signed short :0; signed long long :0; unsigned int :0; signed int :0; };
struct BFs0s_BFs0ll_BFu0i_BFs0ll { signed short :0; signed long long :0; unsigned int :0; signed long long :0; };
struct BFs0s_BFs0ll_BFu0i_BFs0s { signed short :0; signed long long :0; unsigned int :0; signed short :0; };
struct BFs0s_BFs0ll_BFu0i_BFu0c { signed short :0; signed long long :0; unsigned int :0; unsigned char :0; };
struct BFs0s_BFs0ll_BFu0i_BFu0i { signed short :0; signed long long :0; unsigned int :0; unsigned int :0; };
struct BFs0s_BFs0ll_BFu0i_BFu0ll { signed short :0; signed long long :0; unsigned int :0; unsigned long long :0; };
struct BFs0s_BFs0ll_BFu0i_BFu0s { signed short :0; signed long long :0; unsigned int :0; unsigned short :0; };
struct BFs0s_BFs0ll_BFu0ll { signed short :0; signed long long :0; unsigned long long :0; };
struct BFs0s_BFs0ll_BFu0ll_BFs0c { signed short :0; signed long long :0; unsigned long long :0; signed char :0; };
struct BFs0s_BFs0ll_BFu0ll_BFs0i { signed short :0; signed long long :0; unsigned long long :0; signed int :0; };
struct BFs0s_BFs0ll_BFu0ll_BFs0ll { signed short :0; signed long long :0; unsigned long long :0; signed long long :0; };
struct BFs0s_BFs0ll_BFu0ll_BFs0s { signed short :0; signed long long :0; unsigned long long :0; signed short :0; };
struct BFs0s_BFs0ll_BFu0ll_BFu0c { signed short :0; signed long long :0; unsigned long long :0; unsigned char :0; };
struct BFs0s_BFs0ll_BFu0ll_BFu0i { signed short :0; signed long long :0; unsigned long long :0; unsigned int :0; };
struct BFs0s_BFs0ll_BFu0ll_BFu0ll { signed short :0; signed long long :0; unsigned long long :0; unsigned long long :0; };
struct BFs0s_BFs0ll_BFu0ll_BFu0s { signed short :0; signed long long :0; unsigned long long :0; unsigned short :0; };
struct BFs0s_BFs0ll_BFu0s { signed short :0; signed long long :0; unsigned short :0; };
struct BFs0s_BFs0ll_BFu0s_BFs0c { signed short :0; signed long long :0; unsigned short :0; signed char :0; };
struct BFs0s_BFs0ll_BFu0s_BFs0i { signed short :0; signed long long :0; unsigned short :0; signed int :0; };
struct BFs0s_BFs0ll_BFu0s_BFs0ll { signed short :0; signed long long :0; unsigned short :0; signed long long :0; };
struct BFs0s_BFs0ll_BFu0s_BFs0s { signed short :0; signed long long :0; unsigned short :0; signed short :0; };
struct BFs0s_BFs0ll_BFu0s_BFu0c { signed short :0; signed long long :0; unsigned short :0; unsigned char :0; };
struct BFs0s_BFs0ll_BFu0s_BFu0i { signed short :0; signed long long :0; unsigned short :0; unsigned int :0; };
struct BFs0s_BFs0ll_BFu0s_BFu0ll { signed short :0; signed long long :0; unsigned short :0; unsigned long long :0; };
struct BFs0s_BFs0ll_BFu0s_BFu0s { signed short :0; signed long long :0; unsigned short :0; unsigned short :0; };
struct BFs0s_BFs0s { signed short :0; signed short :0; };
struct BFs0s_BFs0s_BFs0c { signed short :0; signed short :0; signed char :0; };
struct BFs0s_BFs0s_BFs0c_BFs0c { signed short :0; signed short :0; signed char :0; signed char :0; };
struct BFs0s_BFs0s_BFs0c_BFs0i { signed short :0; signed short :0; signed char :0; signed int :0; };
struct BFs0s_BFs0s_BFs0c_BFs0ll { signed short :0; signed short :0; signed char :0; signed long long :0; };
struct BFs0s_BFs0s_BFs0c_BFs0s { signed short :0; signed short :0; signed char :0; signed short :0; };
struct BFs0s_BFs0s_BFs0c_BFu0c { signed short :0; signed short :0; signed char :0; unsigned char :0; };
struct BFs0s_BFs0s_BFs0c_BFu0i { signed short :0; signed short :0; signed char :0; unsigned int :0; };
struct BFs0s_BFs0s_BFs0c_BFu0ll { signed short :0; signed short :0; signed char :0; unsigned long long :0; };
struct BFs0s_BFs0s_BFs0c_BFu0s { signed short :0; signed short :0; signed char :0; unsigned short :0; };
struct BFs0s_BFs0s_BFs0i { signed short :0; signed short :0; signed int :0; };
struct BFs0s_BFs0s_BFs0i_BFs0c { signed short :0; signed short :0; signed int :0; signed char :0; };
struct BFs0s_BFs0s_BFs0i_BFs0i { signed short :0; signed short :0; signed int :0; signed int :0; };
struct BFs0s_BFs0s_BFs0i_BFs0ll { signed short :0; signed short :0; signed int :0; signed long long :0; };
struct BFs0s_BFs0s_BFs0i_BFs0s { signed short :0; signed short :0; signed int :0; signed short :0; };
struct BFs0s_BFs0s_BFs0i_BFu0c { signed short :0; signed short :0; signed int :0; unsigned char :0; };
struct BFs0s_BFs0s_BFs0i_BFu0i { signed short :0; signed short :0; signed int :0; unsigned int :0; };
struct BFs0s_BFs0s_BFs0i_BFu0ll { signed short :0; signed short :0; signed int :0; unsigned long long :0; };
struct BFs0s_BFs0s_BFs0i_BFu0s { signed short :0; signed short :0; signed int :0; unsigned short :0; };
struct BFs0s_BFs0s_BFs0ll { signed short :0; signed short :0; signed long long :0; };
struct BFs0s_BFs0s_BFs0ll_BFs0c { signed short :0; signed short :0; signed long long :0; signed char :0; };
struct BFs0s_BFs0s_BFs0ll_BFs0i { signed short :0; signed short :0; signed long long :0; signed int :0; };
struct BFs0s_BFs0s_BFs0ll_BFs0ll { signed short :0; signed short :0; signed long long :0; signed long long :0; };
struct BFs0s_BFs0s_BFs0ll_BFs0s { signed short :0; signed short :0; signed long long :0; signed short :0; };
struct BFs0s_BFs0s_BFs0ll_BFu0c { signed short :0; signed short :0; signed long long :0; unsigned char :0; };
struct BFs0s_BFs0s_BFs0ll_BFu0i { signed short :0; signed short :0; signed long long :0; unsigned int :0; };
struct BFs0s_BFs0s_BFs0ll_BFu0ll { signed short :0; signed short :0; signed long long :0; unsigned long long :0; };
struct BFs0s_BFs0s_BFs0ll_BFu0s { signed short :0; signed short :0; signed long long :0; unsigned short :0; };
struct BFs0s_BFs0s_BFs0s { signed short :0; signed short :0; signed short :0; };
struct BFs0s_BFs0s_BFs0s_BFs0c { signed short :0; signed short :0; signed short :0; signed char :0; };
struct BFs0s_BFs0s_BFs0s_BFs0i { signed short :0; signed short :0; signed short :0; signed int :0; };
struct BFs0s_BFs0s_BFs0s_BFs0ll { signed short :0; signed short :0; signed short :0; signed long long :0; };
struct BFs0s_BFs0s_BFs0s_BFs0s { signed short :0; signed short :0; signed short :0; signed short :0; };
struct BFs0s_BFs0s_BFs0s_BFu0c { signed short :0; signed short :0; signed short :0; unsigned char :0; };
struct BFs0s_BFs0s_BFs0s_BFu0i { signed short :0; signed short :0; signed short :0; unsigned int :0; };
struct BFs0s_BFs0s_BFs0s_BFu0ll { signed short :0; signed short :0; signed short :0; unsigned long long :0; };
struct BFs0s_BFs0s_BFs0s_BFu0s { signed short :0; signed short :0; signed short :0; unsigned short :0; };
struct BFs0s_BFs0s_BFu0c { signed short :0; signed short :0; unsigned char :0; };
struct BFs0s_BFs0s_BFu0c_BFs0c { signed short :0; signed short :0; unsigned char :0; signed char :0; };
struct BFs0s_BFs0s_BFu0c_BFs0i { signed short :0; signed short :0; unsigned char :0; signed int :0; };
struct BFs0s_BFs0s_BFu0c_BFs0ll { signed short :0; signed short :0; unsigned char :0; signed long long :0; };
struct BFs0s_BFs0s_BFu0c_BFs0s { signed short :0; signed short :0; unsigned char :0; signed short :0; };
struct BFs0s_BFs0s_BFu0c_BFu0c { signed short :0; signed short :0; unsigned char :0; unsigned char :0; };
struct BFs0s_BFs0s_BFu0c_BFu0i { signed short :0; signed short :0; unsigned char :0; unsigned int :0; };
struct BFs0s_BFs0s_BFu0c_BFu0ll { signed short :0; signed short :0; unsigned char :0; unsigned long long :0; };
struct BFs0s_BFs0s_BFu0c_BFu0s { signed short :0; signed short :0; unsigned char :0; unsigned short :0; };
struct BFs0s_BFs0s_BFu0i { signed short :0; signed short :0; unsigned int :0; };
struct BFs0s_BFs0s_BFu0i_BFs0c { signed short :0; signed short :0; unsigned int :0; signed char :0; };
struct BFs0s_BFs0s_BFu0i_BFs0i { signed short :0; signed short :0; unsigned int :0; signed int :0; };
struct BFs0s_BFs0s_BFu0i_BFs0ll { signed short :0; signed short :0; unsigned int :0; signed long long :0; };
struct BFs0s_BFs0s_BFu0i_BFs0s { signed short :0; signed short :0; unsigned int :0; signed short :0; };
struct BFs0s_BFs0s_BFu0i_BFu0c { signed short :0; signed short :0; unsigned int :0; unsigned char :0; };
struct BFs0s_BFs0s_BFu0i_BFu0i { signed short :0; signed short :0; unsigned int :0; unsigned int :0; };
struct BFs0s_BFs0s_BFu0i_BFu0ll { signed short :0; signed short :0; unsigned int :0; unsigned long long :0; };
struct BFs0s_BFs0s_BFu0i_BFu0s { signed short :0; signed short :0; unsigned int :0; unsigned short :0; };
struct BFs0s_BFs0s_BFu0ll { signed short :0; signed short :0; unsigned long long :0; };
struct BFs0s_BFs0s_BFu0ll_BFs0c { signed short :0; signed short :0; unsigned long long :0; signed char :0; };
struct BFs0s_BFs0s_BFu0ll_BFs0i { signed short :0; signed short :0; unsigned long long :0; signed int :0; };
struct BFs0s_BFs0s_BFu0ll_BFs0ll { signed short :0; signed short :0; unsigned long long :0; signed long long :0; };
struct BFs0s_BFs0s_BFu0ll_BFs0s { signed short :0; signed short :0; unsigned long long :0; signed short :0; };
struct BFs0s_BFs0s_BFu0ll_BFu0c { signed short :0; signed short :0; unsigned long long :0; unsigned char :0; };
struct BFs0s_BFs0s_BFu0ll_BFu0i { signed short :0; signed short :0; unsigned long long :0; unsigned int :0; };
struct BFs0s_BFs0s_BFu0ll_BFu0ll { signed short :0; signed short :0; unsigned long long :0; unsigned long long :0; };
struct BFs0s_BFs0s_BFu0ll_BFu0s { signed short :0; signed short :0; unsigned long long :0; unsigned short :0; };
struct BFs0s_BFs0s_BFu0s { signed short :0; signed short :0; unsigned short :0; };
struct BFs0s_BFs0s_BFu0s_BFs0c { signed short :0; signed short :0; unsigned short :0; signed char :0; };
struct BFs0s_BFs0s_BFu0s_BFs0i { signed short :0; signed short :0; unsigned short :0; signed int :0; };
struct BFs0s_BFs0s_BFu0s_BFs0ll { signed short :0; signed short :0; unsigned short :0; signed long long :0; };
struct BFs0s_BFs0s_BFu0s_BFs0s { signed short :0; signed short :0; unsigned short :0; signed short :0; };
struct BFs0s_BFs0s_BFu0s_BFu0c { signed short :0; signed short :0; unsigned short :0; unsigned char :0; };
struct BFs0s_BFs0s_BFu0s_BFu0i { signed short :0; signed short :0; unsigned short :0; unsigned int :0; };
struct BFs0s_BFs0s_BFu0s_BFu0ll { signed short :0; signed short :0; unsigned short :0; unsigned long long :0; };
struct BFs0s_BFs0s_BFu0s_BFu0s { signed short :0; signed short :0; unsigned short :0; unsigned short :0; };
struct BFs0s_BFu0c { signed short :0; unsigned char :0; };
struct BFs0s_BFu0c_BFs0c { signed short :0; unsigned char :0; signed char :0; };
struct BFs0s_BFu0c_BFs0c_BFs0c { signed short :0; unsigned char :0; signed char :0; signed char :0; };
struct BFs0s_BFu0c_BFs0c_BFs0i { signed short :0; unsigned char :0; signed char :0; signed int :0; };
struct BFs0s_BFu0c_BFs0c_BFs0ll { signed short :0; unsigned char :0; signed char :0; signed long long :0; };
struct BFs0s_BFu0c_BFs0c_BFs0s { signed short :0; unsigned char :0; signed char :0; signed short :0; };
struct BFs0s_BFu0c_BFs0c_BFu0c { signed short :0; unsigned char :0; signed char :0; unsigned char :0; };
struct BFs0s_BFu0c_BFs0c_BFu0i { signed short :0; unsigned char :0; signed char :0; unsigned int :0; };
struct BFs0s_BFu0c_BFs0c_BFu0ll { signed short :0; unsigned char :0; signed char :0; unsigned long long :0; };
struct BFs0s_BFu0c_BFs0c_BFu0s { signed short :0; unsigned char :0; signed char :0; unsigned short :0; };
struct BFs0s_BFu0c_BFs0i { signed short :0; unsigned char :0; signed int :0; };
struct BFs0s_BFu0c_BFs0i_BFs0c { signed short :0; unsigned char :0; signed int :0; signed char :0; };
struct BFs0s_BFu0c_BFs0i_BFs0i { signed short :0; unsigned char :0; signed int :0; signed int :0; };
struct BFs0s_BFu0c_BFs0i_BFs0ll { signed short :0; unsigned char :0; signed int :0; signed long long :0; };
struct BFs0s_BFu0c_BFs0i_BFs0s { signed short :0; unsigned char :0; signed int :0; signed short :0; };
struct BFs0s_BFu0c_BFs0i_BFu0c { signed short :0; unsigned char :0; signed int :0; unsigned char :0; };
struct BFs0s_BFu0c_BFs0i_BFu0i { signed short :0; unsigned char :0; signed int :0; unsigned int :0; };
struct BFs0s_BFu0c_BFs0i_BFu0ll { signed short :0; unsigned char :0; signed int :0; unsigned long long :0; };
struct BFs0s_BFu0c_BFs0i_BFu0s { signed short :0; unsigned char :0; signed int :0; unsigned short :0; };
struct BFs0s_BFu0c_BFs0ll { signed short :0; unsigned char :0; signed long long :0; };
struct BFs0s_BFu0c_BFs0ll_BFs0c { signed short :0; unsigned char :0; signed long long :0; signed char :0; };
struct BFs0s_BFu0c_BFs0ll_BFs0i { signed short :0; unsigned char :0; signed long long :0; signed int :0; };
struct BFs0s_BFu0c_BFs0ll_BFs0ll { signed short :0; unsigned char :0; signed long long :0; signed long long :0; };
struct BFs0s_BFu0c_BFs0ll_BFs0s { signed short :0; unsigned char :0; signed long long :0; signed short :0; };
struct BFs0s_BFu0c_BFs0ll_BFu0c { signed short :0; unsigned char :0; signed long long :0; unsigned char :0; };
struct BFs0s_BFu0c_BFs0ll_BFu0i { signed short :0; unsigned char :0; signed long long :0; unsigned int :0; };
struct BFs0s_BFu0c_BFs0ll_BFu0ll { signed short :0; unsigned char :0; signed long long :0; unsigned long long :0; };
struct BFs0s_BFu0c_BFs0ll_BFu0s { signed short :0; unsigned char :0; signed long long :0; unsigned short :0; };
struct BFs0s_BFu0c_BFs0s { signed short :0; unsigned char :0; signed short :0; };
struct BFs0s_BFu0c_BFs0s_BFs0c { signed short :0; unsigned char :0; signed short :0; signed char :0; };
struct BFs0s_BFu0c_BFs0s_BFs0i { signed short :0; unsigned char :0; signed short :0; signed int :0; };
struct BFs0s_BFu0c_BFs0s_BFs0ll { signed short :0; unsigned char :0; signed short :0; signed long long :0; };
struct BFs0s_BFu0c_BFs0s_BFs0s { signed short :0; unsigned char :0; signed short :0; signed short :0; };
struct BFs0s_BFu0c_BFs0s_BFu0c { signed short :0; unsigned char :0; signed short :0; unsigned char :0; };
struct BFs0s_BFu0c_BFs0s_BFu0i { signed short :0; unsigned char :0; signed short :0; unsigned int :0; };
struct BFs0s_BFu0c_BFs0s_BFu0ll { signed short :0; unsigned char :0; signed short :0; unsigned long long :0; };
struct BFs0s_BFu0c_BFs0s_BFu0s { signed short :0; unsigned char :0; signed short :0; unsigned short :0; };
struct BFs0s_BFu0c_BFu0c { signed short :0; unsigned char :0; unsigned char :0; };
struct BFs0s_BFu0c_BFu0c_BFs0c { signed short :0; unsigned char :0; unsigned char :0; signed char :0; };
struct BFs0s_BFu0c_BFu0c_BFs0i { signed short :0; unsigned char :0; unsigned char :0; signed int :0; };
struct BFs0s_BFu0c_BFu0c_BFs0ll { signed short :0; unsigned char :0; unsigned char :0; signed long long :0; };
struct BFs0s_BFu0c_BFu0c_BFs0s { signed short :0; unsigned char :0; unsigned char :0; signed short :0; };
struct BFs0s_BFu0c_BFu0c_BFu0c { signed short :0; unsigned char :0; unsigned char :0; unsigned char :0; };
struct BFs0s_BFu0c_BFu0c_BFu0i { signed short :0; unsigned char :0; unsigned char :0; unsigned int :0; };
struct BFs0s_BFu0c_BFu0c_BFu0ll { signed short :0; unsigned char :0; unsigned char :0; unsigned long long :0; };
struct BFs0s_BFu0c_BFu0c_BFu0s { signed short :0; unsigned char :0; unsigned char :0; unsigned short :0; };
struct BFs0s_BFu0c_BFu0i { signed short :0; unsigned char :0; unsigned int :0; };
struct BFs0s_BFu0c_BFu0i_BFs0c { signed short :0; unsigned char :0; unsigned int :0; signed char :0; };
struct BFs0s_BFu0c_BFu0i_BFs0i { signed short :0; unsigned char :0; unsigned int :0; signed int :0; };
struct BFs0s_BFu0c_BFu0i_BFs0ll { signed short :0; unsigned char :0; unsigned int :0; signed long long :0; };
struct BFs0s_BFu0c_BFu0i_BFs0s { signed short :0; unsigned char :0; unsigned int :0; signed short :0; };
struct BFs0s_BFu0c_BFu0i_BFu0c { signed short :0; unsigned char :0; unsigned int :0; unsigned char :0; };
struct BFs0s_BFu0c_BFu0i_BFu0i { signed short :0; unsigned char :0; unsigned int :0; unsigned int :0; };
struct BFs0s_BFu0c_BFu0i_BFu0ll { signed short :0; unsigned char :0; unsigned int :0; unsigned long long :0; };
struct BFs0s_BFu0c_BFu0i_BFu0s { signed short :0; unsigned char :0; unsigned int :0; unsigned short :0; };
struct BFs0s_BFu0c_BFu0ll { signed short :0; unsigned char :0; unsigned long long :0; };
struct BFs0s_BFu0c_BFu0ll_BFs0c { signed short :0; unsigned char :0; unsigned long long :0; signed char :0; };
struct BFs0s_BFu0c_BFu0ll_BFs0i { signed short :0; unsigned char :0; unsigned long long :0; signed int :0; };
struct BFs0s_BFu0c_BFu0ll_BFs0ll { signed short :0; unsigned char :0; unsigned long long :0; signed long long :0; };
struct BFs0s_BFu0c_BFu0ll_BFs0s { signed short :0; unsigned char :0; unsigned long long :0; signed short :0; };
struct BFs0s_BFu0c_BFu0ll_BFu0c { signed short :0; unsigned char :0; unsigned long long :0; unsigned char :0; };
struct BFs0s_BFu0c_BFu0ll_BFu0i { signed short :0; unsigned char :0; unsigned long long :0; unsigned int :0; };
struct BFs0s_BFu0c_BFu0ll_BFu0ll { signed short :0; unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct BFs0s_BFu0c_BFu0ll_BFu0s { signed short :0; unsigned char :0; unsigned long long :0; unsigned short :0; };
struct BFs0s_BFu0c_BFu0s { signed short :0; unsigned char :0; unsigned short :0; };
struct BFs0s_BFu0c_BFu0s_BFs0c { signed short :0; unsigned char :0; unsigned short :0; signed char :0; };
struct BFs0s_BFu0c_BFu0s_BFs0i { signed short :0; unsigned char :0; unsigned short :0; signed int :0; };
struct BFs0s_BFu0c_BFu0s_BFs0ll { signed short :0; unsigned char :0; unsigned short :0; signed long long :0; };
struct BFs0s_BFu0c_BFu0s_BFs0s { signed short :0; unsigned char :0; unsigned short :0; signed short :0; };
struct BFs0s_BFu0c_BFu0s_BFu0c { signed short :0; unsigned char :0; unsigned short :0; unsigned char :0; };
struct BFs0s_BFu0c_BFu0s_BFu0i { signed short :0; unsigned char :0; unsigned short :0; unsigned int :0; };
struct BFs0s_BFu0c_BFu0s_BFu0ll { signed short :0; unsigned char :0; unsigned short :0; unsigned long long :0; };
struct BFs0s_BFu0c_BFu0s_BFu0s { signed short :0; unsigned char :0; unsigned short :0; unsigned short :0; };
struct BFs0s_BFu0i { signed short :0; unsigned int :0; };
struct BFs0s_BFu0i_BFs0c { signed short :0; unsigned int :0; signed char :0; };
struct BFs0s_BFu0i_BFs0c_BFs0c { signed short :0; unsigned int :0; signed char :0; signed char :0; };
struct BFs0s_BFu0i_BFs0c_BFs0i { signed short :0; unsigned int :0; signed char :0; signed int :0; };
struct BFs0s_BFu0i_BFs0c_BFs0ll { signed short :0; unsigned int :0; signed char :0; signed long long :0; };
struct BFs0s_BFu0i_BFs0c_BFs0s { signed short :0; unsigned int :0; signed char :0; signed short :0; };
struct BFs0s_BFu0i_BFs0c_BFu0c { signed short :0; unsigned int :0; signed char :0; unsigned char :0; };
struct BFs0s_BFu0i_BFs0c_BFu0i { signed short :0; unsigned int :0; signed char :0; unsigned int :0; };
struct BFs0s_BFu0i_BFs0c_BFu0ll { signed short :0; unsigned int :0; signed char :0; unsigned long long :0; };
struct BFs0s_BFu0i_BFs0c_BFu0s { signed short :0; unsigned int :0; signed char :0; unsigned short :0; };
struct BFs0s_BFu0i_BFs0i { signed short :0; unsigned int :0; signed int :0; };
struct BFs0s_BFu0i_BFs0i_BFs0c { signed short :0; unsigned int :0; signed int :0; signed char :0; };
struct BFs0s_BFu0i_BFs0i_BFs0i { signed short :0; unsigned int :0; signed int :0; signed int :0; };
struct BFs0s_BFu0i_BFs0i_BFs0ll { signed short :0; unsigned int :0; signed int :0; signed long long :0; };
struct BFs0s_BFu0i_BFs0i_BFs0s { signed short :0; unsigned int :0; signed int :0; signed short :0; };
struct BFs0s_BFu0i_BFs0i_BFu0c { signed short :0; unsigned int :0; signed int :0; unsigned char :0; };
struct BFs0s_BFu0i_BFs0i_BFu0i { signed short :0; unsigned int :0; signed int :0; unsigned int :0; };
struct BFs0s_BFu0i_BFs0i_BFu0ll { signed short :0; unsigned int :0; signed int :0; unsigned long long :0; };
struct BFs0s_BFu0i_BFs0i_BFu0s { signed short :0; unsigned int :0; signed int :0; unsigned short :0; };
struct BFs0s_BFu0i_BFs0ll { signed short :0; unsigned int :0; signed long long :0; };
struct BFs0s_BFu0i_BFs0ll_BFs0c { signed short :0; unsigned int :0; signed long long :0; signed char :0; };
struct BFs0s_BFu0i_BFs0ll_BFs0i { signed short :0; unsigned int :0; signed long long :0; signed int :0; };
struct BFs0s_BFu0i_BFs0ll_BFs0ll { signed short :0; unsigned int :0; signed long long :0; signed long long :0; };
struct BFs0s_BFu0i_BFs0ll_BFs0s { signed short :0; unsigned int :0; signed long long :0; signed short :0; };
struct BFs0s_BFu0i_BFs0ll_BFu0c { signed short :0; unsigned int :0; signed long long :0; unsigned char :0; };
struct BFs0s_BFu0i_BFs0ll_BFu0i { signed short :0; unsigned int :0; signed long long :0; unsigned int :0; };
struct BFs0s_BFu0i_BFs0ll_BFu0ll { signed short :0; unsigned int :0; signed long long :0; unsigned long long :0; };
struct BFs0s_BFu0i_BFs0ll_BFu0s { signed short :0; unsigned int :0; signed long long :0; unsigned short :0; };
struct BFs0s_BFu0i_BFs0s { signed short :0; unsigned int :0; signed short :0; };
struct BFs0s_BFu0i_BFs0s_BFs0c { signed short :0; unsigned int :0; signed short :0; signed char :0; };
struct BFs0s_BFu0i_BFs0s_BFs0i { signed short :0; unsigned int :0; signed short :0; signed int :0; };
struct BFs0s_BFu0i_BFs0s_BFs0ll { signed short :0; unsigned int :0; signed short :0; signed long long :0; };
struct BFs0s_BFu0i_BFs0s_BFs0s { signed short :0; unsigned int :0; signed short :0; signed short :0; };
struct BFs0s_BFu0i_BFs0s_BFu0c { signed short :0; unsigned int :0; signed short :0; unsigned char :0; };
struct BFs0s_BFu0i_BFs0s_BFu0i { signed short :0; unsigned int :0; signed short :0; unsigned int :0; };
struct BFs0s_BFu0i_BFs0s_BFu0ll { signed short :0; unsigned int :0; signed short :0; unsigned long long :0; };
struct BFs0s_BFu0i_BFs0s_BFu0s { signed short :0; unsigned int :0; signed short :0; unsigned short :0; };
struct BFs0s_BFu0i_BFu0c { signed short :0; unsigned int :0; unsigned char :0; };
struct BFs0s_BFu0i_BFu0c_BFs0c { signed short :0; unsigned int :0; unsigned char :0; signed char :0; };
struct BFs0s_BFu0i_BFu0c_BFs0i { signed short :0; unsigned int :0; unsigned char :0; signed int :0; };
struct BFs0s_BFu0i_BFu0c_BFs0ll { signed short :0; unsigned int :0; unsigned char :0; signed long long :0; };
struct BFs0s_BFu0i_BFu0c_BFs0s { signed short :0; unsigned int :0; unsigned char :0; signed short :0; };
struct BFs0s_BFu0i_BFu0c_BFu0c { signed short :0; unsigned int :0; unsigned char :0; unsigned char :0; };
struct BFs0s_BFu0i_BFu0c_BFu0i { signed short :0; unsigned int :0; unsigned char :0; unsigned int :0; };
struct BFs0s_BFu0i_BFu0c_BFu0ll { signed short :0; unsigned int :0; unsigned char :0; unsigned long long :0; };
struct BFs0s_BFu0i_BFu0c_BFu0s { signed short :0; unsigned int :0; unsigned char :0; unsigned short :0; };
struct BFs0s_BFu0i_BFu0i { signed short :0; unsigned int :0; unsigned int :0; };
struct BFs0s_BFu0i_BFu0i_BFs0c { signed short :0; unsigned int :0; unsigned int :0; signed char :0; };
struct BFs0s_BFu0i_BFu0i_BFs0i { signed short :0; unsigned int :0; unsigned int :0; signed int :0; };
struct BFs0s_BFu0i_BFu0i_BFs0ll { signed short :0; unsigned int :0; unsigned int :0; signed long long :0; };
struct BFs0s_BFu0i_BFu0i_BFs0s { signed short :0; unsigned int :0; unsigned int :0; signed short :0; };
struct BFs0s_BFu0i_BFu0i_BFu0c { signed short :0; unsigned int :0; unsigned int :0; unsigned char :0; };
struct BFs0s_BFu0i_BFu0i_BFu0i { signed short :0; unsigned int :0; unsigned int :0; unsigned int :0; };
struct BFs0s_BFu0i_BFu0i_BFu0ll { signed short :0; unsigned int :0; unsigned int :0; unsigned long long :0; };
struct BFs0s_BFu0i_BFu0i_BFu0s { signed short :0; unsigned int :0; unsigned int :0; unsigned short :0; };
struct BFs0s_BFu0i_BFu0ll { signed short :0; unsigned int :0; unsigned long long :0; };
struct BFs0s_BFu0i_BFu0ll_BFs0c { signed short :0; unsigned int :0; unsigned long long :0; signed char :0; };
struct BFs0s_BFu0i_BFu0ll_BFs0i { signed short :0; unsigned int :0; unsigned long long :0; signed int :0; };
struct BFs0s_BFu0i_BFu0ll_BFs0ll { signed short :0; unsigned int :0; unsigned long long :0; signed long long :0; };
struct BFs0s_BFu0i_BFu0ll_BFs0s { signed short :0; unsigned int :0; unsigned long long :0; signed short :0; };
struct BFs0s_BFu0i_BFu0ll_BFu0c { signed short :0; unsigned int :0; unsigned long long :0; unsigned char :0; };
struct BFs0s_BFu0i_BFu0ll_BFu0i { signed short :0; unsigned int :0; unsigned long long :0; unsigned int :0; };
struct BFs0s_BFu0i_BFu0ll_BFu0ll { signed short :0; unsigned int :0; unsigned long long :0; unsigned long long :0; };
struct BFs0s_BFu0i_BFu0ll_BFu0s { signed short :0; unsigned int :0; unsigned long long :0; unsigned short :0; };
struct BFs0s_BFu0i_BFu0s { signed short :0; unsigned int :0; unsigned short :0; };
struct BFs0s_BFu0i_BFu0s_BFs0c { signed short :0; unsigned int :0; unsigned short :0; signed char :0; };
struct BFs0s_BFu0i_BFu0s_BFs0i { signed short :0; unsigned int :0; unsigned short :0; signed int :0; };
struct BFs0s_BFu0i_BFu0s_BFs0ll { signed short :0; unsigned int :0; unsigned short :0; signed long long :0; };
struct BFs0s_BFu0i_BFu0s_BFs0s { signed short :0; unsigned int :0; unsigned short :0; signed short :0; };
struct BFs0s_BFu0i_BFu0s_BFu0c { signed short :0; unsigned int :0; unsigned short :0; unsigned char :0; };
struct BFs0s_BFu0i_BFu0s_BFu0i { signed short :0; unsigned int :0; unsigned short :0; unsigned int :0; };
struct BFs0s_BFu0i_BFu0s_BFu0ll { signed short :0; unsigned int :0; unsigned short :0; unsigned long long :0; };
struct BFs0s_BFu0i_BFu0s_BFu0s { signed short :0; unsigned int :0; unsigned short :0; unsigned short :0; };
struct BFs0s_BFu0ll { signed short :0; unsigned long long :0; };
struct BFs0s_BFu0ll_BFs0c { signed short :0; unsigned long long :0; signed char :0; };
struct BFs0s_BFu0ll_BFs0c_BFs0c { signed short :0; unsigned long long :0; signed char :0; signed char :0; };
struct BFs0s_BFu0ll_BFs0c_BFs0i { signed short :0; unsigned long long :0; signed char :0; signed int :0; };
struct BFs0s_BFu0ll_BFs0c_BFs0ll { signed short :0; unsigned long long :0; signed char :0; signed long long :0; };
struct BFs0s_BFu0ll_BFs0c_BFs0s { signed short :0; unsigned long long :0; signed char :0; signed short :0; };
struct BFs0s_BFu0ll_BFs0c_BFu0c { signed short :0; unsigned long long :0; signed char :0; unsigned char :0; };
struct BFs0s_BFu0ll_BFs0c_BFu0i { signed short :0; unsigned long long :0; signed char :0; unsigned int :0; };
struct BFs0s_BFu0ll_BFs0c_BFu0ll { signed short :0; unsigned long long :0; signed char :0; unsigned long long :0; };
struct BFs0s_BFu0ll_BFs0c_BFu0s { signed short :0; unsigned long long :0; signed char :0; unsigned short :0; };
struct BFs0s_BFu0ll_BFs0i { signed short :0; unsigned long long :0; signed int :0; };
struct BFs0s_BFu0ll_BFs0i_BFs0c { signed short :0; unsigned long long :0; signed int :0; signed char :0; };
struct BFs0s_BFu0ll_BFs0i_BFs0i { signed short :0; unsigned long long :0; signed int :0; signed int :0; };
struct BFs0s_BFu0ll_BFs0i_BFs0ll { signed short :0; unsigned long long :0; signed int :0; signed long long :0; };
struct BFs0s_BFu0ll_BFs0i_BFs0s { signed short :0; unsigned long long :0; signed int :0; signed short :0; };
struct BFs0s_BFu0ll_BFs0i_BFu0c { signed short :0; unsigned long long :0; signed int :0; unsigned char :0; };
struct BFs0s_BFu0ll_BFs0i_BFu0i { signed short :0; unsigned long long :0; signed int :0; unsigned int :0; };
struct BFs0s_BFu0ll_BFs0i_BFu0ll { signed short :0; unsigned long long :0; signed int :0; unsigned long long :0; };
struct BFs0s_BFu0ll_BFs0i_BFu0s { signed short :0; unsigned long long :0; signed int :0; unsigned short :0; };
struct BFs0s_BFu0ll_BFs0ll { signed short :0; unsigned long long :0; signed long long :0; };
struct BFs0s_BFu0ll_BFs0ll_BFs0c { signed short :0; unsigned long long :0; signed long long :0; signed char :0; };
struct BFs0s_BFu0ll_BFs0ll_BFs0i { signed short :0; unsigned long long :0; signed long long :0; signed int :0; };
struct BFs0s_BFu0ll_BFs0ll_BFs0ll { signed short :0; unsigned long long :0; signed long long :0; signed long long :0; };
struct BFs0s_BFu0ll_BFs0ll_BFs0s { signed short :0; unsigned long long :0; signed long long :0; signed short :0; };
struct BFs0s_BFu0ll_BFs0ll_BFu0c { signed short :0; unsigned long long :0; signed long long :0; unsigned char :0; };
struct BFs0s_BFu0ll_BFs0ll_BFu0i { signed short :0; unsigned long long :0; signed long long :0; unsigned int :0; };
struct BFs0s_BFu0ll_BFs0ll_BFu0ll { signed short :0; unsigned long long :0; signed long long :0; unsigned long long :0; };
struct BFs0s_BFu0ll_BFs0ll_BFu0s { signed short :0; unsigned long long :0; signed long long :0; unsigned short :0; };
struct BFs0s_BFu0ll_BFs0s { signed short :0; unsigned long long :0; signed short :0; };
struct BFs0s_BFu0ll_BFs0s_BFs0c { signed short :0; unsigned long long :0; signed short :0; signed char :0; };
struct BFs0s_BFu0ll_BFs0s_BFs0i { signed short :0; unsigned long long :0; signed short :0; signed int :0; };
struct BFs0s_BFu0ll_BFs0s_BFs0ll { signed short :0; unsigned long long :0; signed short :0; signed long long :0; };
struct BFs0s_BFu0ll_BFs0s_BFs0s { signed short :0; unsigned long long :0; signed short :0; signed short :0; };
struct BFs0s_BFu0ll_BFs0s_BFu0c { signed short :0; unsigned long long :0; signed short :0; unsigned char :0; };
struct BFs0s_BFu0ll_BFs0s_BFu0i { signed short :0; unsigned long long :0; signed short :0; unsigned int :0; };
struct BFs0s_BFu0ll_BFs0s_BFu0ll { signed short :0; unsigned long long :0; signed short :0; unsigned long long :0; };
struct BFs0s_BFu0ll_BFs0s_BFu0s { signed short :0; unsigned long long :0; signed short :0; unsigned short :0; };
struct BFs0s_BFu0ll_BFu0c { signed short :0; unsigned long long :0; unsigned char :0; };
struct BFs0s_BFu0ll_BFu0c_BFs0c { signed short :0; unsigned long long :0; unsigned char :0; signed char :0; };
struct BFs0s_BFu0ll_BFu0c_BFs0i { signed short :0; unsigned long long :0; unsigned char :0; signed int :0; };
struct BFs0s_BFu0ll_BFu0c_BFs0ll { signed short :0; unsigned long long :0; unsigned char :0; signed long long :0; };
struct BFs0s_BFu0ll_BFu0c_BFs0s { signed short :0; unsigned long long :0; unsigned char :0; signed short :0; };
struct BFs0s_BFu0ll_BFu0c_BFu0c { signed short :0; unsigned long long :0; unsigned char :0; unsigned char :0; };
struct BFs0s_BFu0ll_BFu0c_BFu0i { signed short :0; unsigned long long :0; unsigned char :0; unsigned int :0; };
struct BFs0s_BFu0ll_BFu0c_BFu0ll { signed short :0; unsigned long long :0; unsigned char :0; unsigned long long :0; };
struct BFs0s_BFu0ll_BFu0c_BFu0s { signed short :0; unsigned long long :0; unsigned char :0; unsigned short :0; };
struct BFs0s_BFu0ll_BFu0i { signed short :0; unsigned long long :0; unsigned int :0; };
struct BFs0s_BFu0ll_BFu0i_BFs0c { signed short :0; unsigned long long :0; unsigned int :0; signed char :0; };
struct BFs0s_BFu0ll_BFu0i_BFs0i { signed short :0; unsigned long long :0; unsigned int :0; signed int :0; };
struct BFs0s_BFu0ll_BFu0i_BFs0ll { signed short :0; unsigned long long :0; unsigned int :0; signed long long :0; };
struct BFs0s_BFu0ll_BFu0i_BFs0s { signed short :0; unsigned long long :0; unsigned int :0; signed short :0; };
struct BFs0s_BFu0ll_BFu0i_BFu0c { signed short :0; unsigned long long :0; unsigned int :0; unsigned char :0; };
struct BFs0s_BFu0ll_BFu0i_BFu0i { signed short :0; unsigned long long :0; unsigned int :0; unsigned int :0; };
struct BFs0s_BFu0ll_BFu0i_BFu0ll { signed short :0; unsigned long long :0; unsigned int :0; unsigned long long :0; };
struct BFs0s_BFu0ll_BFu0i_BFu0s { signed short :0; unsigned long long :0; unsigned int :0; unsigned short :0; };
struct BFs0s_BFu0ll_BFu0ll { signed short :0; unsigned long long :0; unsigned long long :0; };
struct BFs0s_BFu0ll_BFu0ll_BFs0c { signed short :0; unsigned long long :0; unsigned long long :0; signed char :0; };
struct BFs0s_BFu0ll_BFu0ll_BFs0i { signed short :0; unsigned long long :0; unsigned long long :0; signed int :0; };
struct BFs0s_BFu0ll_BFu0ll_BFs0ll { signed short :0; unsigned long long :0; unsigned long long :0; signed long long :0; };
struct BFs0s_BFu0ll_BFu0ll_BFs0s { signed short :0; unsigned long long :0; unsigned long long :0; signed short :0; };
struct BFs0s_BFu0ll_BFu0ll_BFu0c { signed short :0; unsigned long long :0; unsigned long long :0; unsigned char :0; };
struct BFs0s_BFu0ll_BFu0ll_BFu0i { signed short :0; unsigned long long :0; unsigned long long :0; unsigned int :0; };
struct BFs0s_BFu0ll_BFu0ll_BFu0ll { signed short :0; unsigned long long :0; unsigned long long :0; unsigned long long :0; };
struct BFs0s_BFu0ll_BFu0ll_BFu0s { signed short :0; unsigned long long :0; unsigned long long :0; unsigned short :0; };
struct BFs0s_BFu0ll_BFu0s { signed short :0; unsigned long long :0; unsigned short :0; };
struct BFs0s_BFu0ll_BFu0s_BFs0c { signed short :0; unsigned long long :0; unsigned short :0; signed char :0; };
struct BFs0s_BFu0ll_BFu0s_BFs0i { signed short :0; unsigned long long :0; unsigned short :0; signed int :0; };
struct BFs0s_BFu0ll_BFu0s_BFs0ll { signed short :0; unsigned long long :0; unsigned short :0; signed long long :0; };
struct BFs0s_BFu0ll_BFu0s_BFs0s { signed short :0; unsigned long long :0; unsigned short :0; signed short :0; };
struct BFs0s_BFu0ll_BFu0s_BFu0c { signed short :0; unsigned long long :0; unsigned short :0; unsigned char :0; };
struct BFs0s_BFu0ll_BFu0s_BFu0i { signed short :0; unsigned long long :0; unsigned short :0; unsigned int :0; };
struct BFs0s_BFu0ll_BFu0s_BFu0ll { signed short :0; unsigned long long :0; unsigned short :0; unsigned long long :0; };
struct BFs0s_BFu0ll_BFu0s_BFu0s { signed short :0; unsigned long long :0; unsigned short :0; unsigned short :0; };
struct BFs0s_BFu0s { signed short :0; unsigned short :0; };
struct BFs0s_BFu0s_BFs0c { signed short :0; unsigned short :0; signed char :0; };
struct BFs0s_BFu0s_BFs0c_BFs0c { signed short :0; unsigned short :0; signed char :0; signed char :0; };
struct BFs0s_BFu0s_BFs0c_BFs0i { signed short :0; unsigned short :0; signed char :0; signed int :0; };
struct BFs0s_BFu0s_BFs0c_BFs0ll { signed short :0; unsigned short :0; signed char :0; signed long long :0; };
struct BFs0s_BFu0s_BFs0c_BFs0s { signed short :0; unsigned short :0; signed char :0; signed short :0; };
struct BFs0s_BFu0s_BFs0c_BFu0c { signed short :0; unsigned short :0; signed char :0; unsigned char :0; };
struct BFs0s_BFu0s_BFs0c_BFu0i { signed short :0; unsigned short :0; signed char :0; unsigned int :0; };
struct BFs0s_BFu0s_BFs0c_BFu0ll { signed short :0; unsigned short :0; signed char :0; unsigned long long :0; };
struct BFs0s_BFu0s_BFs0c_BFu0s { signed short :0; unsigned short :0; signed char :0; unsigned short :0; };
struct BFs0s_BFu0s_BFs0i { signed short :0; unsigned short :0; signed int :0; };
struct BFs0s_BFu0s_BFs0i_BFs0c { signed short :0; unsigned short :0; signed int :0; signed char :0; };
struct BFs0s_BFu0s_BFs0i_BFs0i { signed short :0; unsigned short :0; signed int :0; signed int :0; };
struct BFs0s_BFu0s_BFs0i_BFs0ll { signed short :0; unsigned short :0; signed int :0; signed long long :0; };
struct BFs0s_BFu0s_BFs0i_BFs0s { signed short :0; unsigned short :0; signed int :0; signed short :0; };
struct BFs0s_BFu0s_BFs0i_BFu0c { signed short :0; unsigned short :0; signed int :0; unsigned char :0; };
struct BFs0s_BFu0s_BFs0i_BFu0i { signed short :0; unsigned short :0; signed int :0; unsigned int :0; };
struct BFs0s_BFu0s_BFs0i_BFu0ll { signed short :0; unsigned short :0; signed int :0; unsigned long long :0; };
struct BFs0s_BFu0s_BFs0i_BFu0s { signed short :0; unsigned short :0; signed int :0; unsigned short :0; };
struct BFs0s_BFu0s_BFs0ll { signed short :0; unsigned short :0; signed long long :0; };
struct BFs0s_BFu0s_BFs0ll_BFs0c { signed short :0; unsigned short :0; signed long long :0; signed char :0; };
struct BFs0s_BFu0s_BFs0ll_BFs0i { signed short :0; unsigned short :0; signed long long :0; signed int :0; };
struct BFs0s_BFu0s_BFs0ll_BFs0ll { signed short :0; unsigned short :0; signed long long :0; signed long long :0; };
struct BFs0s_BFu0s_BFs0ll_BFs0s { signed short :0; unsigned short :0; signed long long :0; signed short :0; };
struct BFs0s_BFu0s_BFs0ll_BFu0c { signed short :0; unsigned short :0; signed long long :0; unsigned char :0; };
struct BFs0s_BFu0s_BFs0ll_BFu0i { signed short :0; unsigned short :0; signed long long :0; unsigned int :0; };
struct BFs0s_BFu0s_BFs0ll_BFu0ll { signed short :0; unsigned short :0; signed long long :0; unsigned long long :0; };
struct BFs0s_BFu0s_BFs0ll_BFu0s { signed short :0; unsigned short :0; signed long long :0; unsigned short :0; };
struct BFs0s_BFu0s_BFs0s { signed short :0; unsigned short :0; signed short :0; };
struct BFs0s_BFu0s_BFs0s_BFs0c { signed short :0; unsigned short :0; signed short :0; signed char :0; };
struct BFs0s_BFu0s_BFs0s_BFs0i { signed short :0; unsigned short :0; signed short :0; signed int :0; };
struct BFs0s_BFu0s_BFs0s_BFs0ll { signed short :0; unsigned short :0; signed short :0; signed long long :0; };
struct BFs0s_BFu0s_BFs0s_BFs0s { signed short :0; unsigned short :0; signed short :0; signed short :0; };
struct BFs0s_BFu0s_BFs0s_BFu0c { signed short :0; unsigned short :0; signed short :0; unsigned char :0; };
struct BFs0s_BFu0s_BFs0s_BFu0i { signed short :0; unsigned short :0; signed short :0; unsigned int :0; };
struct BFs0s_BFu0s_BFs0s_BFu0ll { signed short :0; unsigned short :0; signed short :0; unsigned long long :0; };
struct BFs0s_BFu0s_BFs0s_BFu0s { signed short :0; unsigned short :0; signed short :0; unsigned short :0; };
struct BFs0s_BFu0s_BFu0c { signed short :0; unsigned short :0; unsigned char :0; };
struct BFs0s_BFu0s_BFu0c_BFs0c { signed short :0; unsigned short :0; unsigned char :0; signed char :0; };
struct BFs0s_BFu0s_BFu0c_BFs0i { signed short :0; unsigned short :0; unsigned char :0; signed int :0; };
struct BFs0s_BFu0s_BFu0c_BFs0ll { signed short :0; unsigned short :0; unsigned char :0; signed long long :0; };
struct BFs0s_BFu0s_BFu0c_BFs0s { signed short :0; unsigned short :0; unsigned char :0; signed short :0; };
struct BFs0s_BFu0s_BFu0c_BFu0c { signed short :0; unsigned short :0; unsigned char :0; unsigned char :0; };
struct BFs0s_BFu0s_BFu0c_BFu0i { signed short :0; unsigned short :0; unsigned char :0; unsigned int :0; };
struct BFs0s_BFu0s_BFu0c_BFu0ll { signed short :0; unsigned short :0; unsigned char :0; unsigned long long :0; };
struct BFs0s_BFu0s_BFu0c_BFu0s { signed short :0; unsigned short :0; unsigned char :0; unsigned short :0; };
struct BFs0s_BFu0s_BFu0i { signed short :0; unsigned short :0; unsigned int :0; };
struct BFs0s_BFu0s_BFu0i_BFs0c { signed short :0; unsigned short :0; unsigned int :0; signed char :0; };
struct BFs0s_BFu0s_BFu0i_BFs0i { signed short :0; unsigned short :0; unsigned int :0; signed int :0; };
struct BFs0s_BFu0s_BFu0i_BFs0ll { signed short :0; unsigned short :0; unsigned int :0; signed long long :0; };
struct BFs0s_BFu0s_BFu0i_BFs0s { signed short :0; unsigned short :0; unsigned int :0; signed short :0; };
struct BFs0s_BFu0s_BFu0i_BFu0c { signed short :0; unsigned short :0; unsigned int :0; unsigned char :0; };
struct BFs0s_BFu0s_BFu0i_BFu0i { signed short :0; unsigned short :0; unsigned int :0; unsigned int :0; };
struct BFs0s_BFu0s_BFu0i_BFu0ll { signed short :0; unsigned short :0; unsigned int :0; unsigned long long :0; };
struct BFs0s_BFu0s_BFu0i_BFu0s { signed short :0; unsigned short :0; unsigned int :0; unsigned short :0; };
struct BFs0s_BFu0s_BFu0ll { signed short :0; unsigned short :0; unsigned long long :0; };
struct BFs0s_BFu0s_BFu0ll_BFs0c { signed short :0; unsigned short :0; unsigned long long :0; signed char :0; };
struct BFs0s_BFu0s_BFu0ll_BFs0i { signed short :0; unsigned short :0; unsigned long long :0; signed int :0; };
struct BFs0s_BFu0s_BFu0ll_BFs0ll { signed short :0; unsigned short :0; unsigned long long :0; signed long long :0; };
struct BFs0s_BFu0s_BFu0ll_BFs0s { signed short :0; unsigned short :0; unsigned long long :0; signed short :0; };
struct BFs0s_BFu0s_BFu0ll_BFu0c { signed short :0; unsigned short :0; unsigned long long :0; unsigned char :0; };
struct BFs0s_BFu0s_BFu0ll_BFu0i { signed short :0; unsigned short :0; unsigned long long :0; unsigned int :0; };
struct BFs0s_BFu0s_BFu0ll_BFu0ll { signed short :0; unsigned short :0; unsigned long long :0; unsigned long long :0; };
struct BFs0s_BFu0s_BFu0ll_BFu0s { signed short :0; unsigned short :0; unsigned long long :0; unsigned short :0; };
struct BFs0s_BFu0s_BFu0s { signed short :0; unsigned short :0; unsigned short :0; };
struct BFs0s_BFu0s_BFu0s_BFs0c { signed short :0; unsigned short :0; unsigned short :0; signed char :0; };
struct BFs0s_BFu0s_BFu0s_BFs0i { signed short :0; unsigned short :0; unsigned short :0; signed int :0; };
struct BFs0s_BFu0s_BFu0s_BFs0ll { signed short :0; unsigned short :0; unsigned short :0; signed long long :0; };
struct BFs0s_BFu0s_BFu0s_BFs0s { signed short :0; unsigned short :0; unsigned short :0; signed short :0; };
struct BFs0s_BFu0s_BFu0s_BFu0c { signed short :0; unsigned short :0; unsigned short :0; unsigned char :0; };
struct BFs0s_BFu0s_BFu0s_BFu0i { signed short :0; unsigned short :0; unsigned short :0; unsigned int :0; };
struct BFs0s_BFu0s_BFu0s_BFu0ll { signed short :0; unsigned short :0; unsigned short :0; unsigned long long :0; };
struct BFs0s_BFu0s_BFu0s_BFu0s { signed short :0; unsigned short :0; unsigned short :0; unsigned short :0; };
struct BFu0c { unsigned char :0; };
struct BFu0c_BFs0c { unsigned char :0; signed char :0; };
struct BFu0c_BFs0c_BFs0c { unsigned char :0; signed char :0; signed char :0; };
struct BFu0c_BFs0c_BFs0c_BFs0c { unsigned char :0; signed char :0; signed char :0; signed char :0; };
struct BFu0c_BFs0c_BFs0c_BFs0i { unsigned char :0; signed char :0; signed char :0; signed int :0; };
struct BFu0c_BFs0c_BFs0c_BFs0ll { unsigned char :0; signed char :0; signed char :0; signed long long :0; };
struct BFu0c_BFs0c_BFs0c_BFs0s { unsigned char :0; signed char :0; signed char :0; signed short :0; };
struct BFu0c_BFs0c_BFs0c_BFu0c { unsigned char :0; signed char :0; signed char :0; unsigned char :0; };
struct BFu0c_BFs0c_BFs0c_BFu0i { unsigned char :0; signed char :0; signed char :0; unsigned int :0; };
struct BFu0c_BFs0c_BFs0c_BFu0ll { unsigned char :0; signed char :0; signed char :0; unsigned long long :0; };
struct BFu0c_BFs0c_BFs0c_BFu0s { unsigned char :0; signed char :0; signed char :0; unsigned short :0; };
struct BFu0c_BFs0c_BFs0i { unsigned char :0; signed char :0; signed int :0; };
struct BFu0c_BFs0c_BFs0i_BFs0c { unsigned char :0; signed char :0; signed int :0; signed char :0; };
struct BFu0c_BFs0c_BFs0i_BFs0i { unsigned char :0; signed char :0; signed int :0; signed int :0; };
struct BFu0c_BFs0c_BFs0i_BFs0ll { unsigned char :0; signed char :0; signed int :0; signed long long :0; };
struct BFu0c_BFs0c_BFs0i_BFs0s { unsigned char :0; signed char :0; signed int :0; signed short :0; };
struct BFu0c_BFs0c_BFs0i_BFu0c { unsigned char :0; signed char :0; signed int :0; unsigned char :0; };
struct BFu0c_BFs0c_BFs0i_BFu0i { unsigned char :0; signed char :0; signed int :0; unsigned int :0; };
struct BFu0c_BFs0c_BFs0i_BFu0ll { unsigned char :0; signed char :0; signed int :0; unsigned long long :0; };
struct BFu0c_BFs0c_BFs0i_BFu0s { unsigned char :0; signed char :0; signed int :0; unsigned short :0; };
struct BFu0c_BFs0c_BFs0ll { unsigned char :0; signed char :0; signed long long :0; };
struct BFu0c_BFs0c_BFs0ll_BFs0c { unsigned char :0; signed char :0; signed long long :0; signed char :0; };
struct BFu0c_BFs0c_BFs0ll_BFs0i { unsigned char :0; signed char :0; signed long long :0; signed int :0; };
struct BFu0c_BFs0c_BFs0ll_BFs0ll { unsigned char :0; signed char :0; signed long long :0; signed long long :0; };
struct BFu0c_BFs0c_BFs0ll_BFs0s { unsigned char :0; signed char :0; signed long long :0; signed short :0; };
struct BFu0c_BFs0c_BFs0ll_BFu0c { unsigned char :0; signed char :0; signed long long :0; unsigned char :0; };
struct BFu0c_BFs0c_BFs0ll_BFu0i { unsigned char :0; signed char :0; signed long long :0; unsigned int :0; };
struct BFu0c_BFs0c_BFs0ll_BFu0ll { unsigned char :0; signed char :0; signed long long :0; unsigned long long :0; };
struct BFu0c_BFs0c_BFs0ll_BFu0s { unsigned char :0; signed char :0; signed long long :0; unsigned short :0; };
struct BFu0c_BFs0c_BFs0s { unsigned char :0; signed char :0; signed short :0; };
struct BFu0c_BFs0c_BFs0s_BFs0c { unsigned char :0; signed char :0; signed short :0; signed char :0; };
struct BFu0c_BFs0c_BFs0s_BFs0i { unsigned char :0; signed char :0; signed short :0; signed int :0; };
struct BFu0c_BFs0c_BFs0s_BFs0ll { unsigned char :0; signed char :0; signed short :0; signed long long :0; };
struct BFu0c_BFs0c_BFs0s_BFs0s { unsigned char :0; signed char :0; signed short :0; signed short :0; };
struct BFu0c_BFs0c_BFs0s_BFu0c { unsigned char :0; signed char :0; signed short :0; unsigned char :0; };
struct BFu0c_BFs0c_BFs0s_BFu0i { unsigned char :0; signed char :0; signed short :0; unsigned int :0; };
struct BFu0c_BFs0c_BFs0s_BFu0ll { unsigned char :0; signed char :0; signed short :0; unsigned long long :0; };
struct BFu0c_BFs0c_BFs0s_BFu0s { unsigned char :0; signed char :0; signed short :0; unsigned short :0; };
struct BFu0c_BFs0c_BFu0c { unsigned char :0; signed char :0; unsigned char :0; };
struct BFu0c_BFs0c_BFu0c_BFs0c { unsigned char :0; signed char :0; unsigned char :0; signed char :0; };
struct BFu0c_BFs0c_BFu0c_BFs0i { unsigned char :0; signed char :0; unsigned char :0; signed int :0; };
struct BFu0c_BFs0c_BFu0c_BFs0ll { unsigned char :0; signed char :0; unsigned char :0; signed long long :0; };
struct BFu0c_BFs0c_BFu0c_BFs0s { unsigned char :0; signed char :0; unsigned char :0; signed short :0; };
struct BFu0c_BFs0c_BFu0c_BFu0c { unsigned char :0; signed char :0; unsigned char :0; unsigned char :0; };
struct BFu0c_BFs0c_BFu0c_BFu0i { unsigned char :0; signed char :0; unsigned char :0; unsigned int :0; };
struct BFu0c_BFs0c_BFu0c_BFu0ll { unsigned char :0; signed char :0; unsigned char :0; unsigned long long :0; };
struct BFu0c_BFs0c_BFu0c_BFu0s { unsigned char :0; signed char :0; unsigned char :0; unsigned short :0; };
struct BFu0c_BFs0c_BFu0i { unsigned char :0; signed char :0; unsigned int :0; };
struct BFu0c_BFs0c_BFu0i_BFs0c { unsigned char :0; signed char :0; unsigned int :0; signed char :0; };
struct BFu0c_BFs0c_BFu0i_BFs0i { unsigned char :0; signed char :0; unsigned int :0; signed int :0; };
struct BFu0c_BFs0c_BFu0i_BFs0ll { unsigned char :0; signed char :0; unsigned int :0; signed long long :0; };
struct BFu0c_BFs0c_BFu0i_BFs0s { unsigned char :0; signed char :0; unsigned int :0; signed short :0; };
struct BFu0c_BFs0c_BFu0i_BFu0c { unsigned char :0; signed char :0; unsigned int :0; unsigned char :0; };
struct BFu0c_BFs0c_BFu0i_BFu0i { unsigned char :0; signed char :0; unsigned int :0; unsigned int :0; };
struct BFu0c_BFs0c_BFu0i_BFu0ll { unsigned char :0; signed char :0; unsigned int :0; unsigned long long :0; };
struct BFu0c_BFs0c_BFu0i_BFu0s { unsigned char :0; signed char :0; unsigned int :0; unsigned short :0; };
struct BFu0c_BFs0c_BFu0ll { unsigned char :0; signed char :0; unsigned long long :0; };
struct BFu0c_BFs0c_BFu0ll_BFs0c { unsigned char :0; signed char :0; unsigned long long :0; signed char :0; };
struct BFu0c_BFs0c_BFu0ll_BFs0i { unsigned char :0; signed char :0; unsigned long long :0; signed int :0; };
struct BFu0c_BFs0c_BFu0ll_BFs0ll { unsigned char :0; signed char :0; unsigned long long :0; signed long long :0; };
struct BFu0c_BFs0c_BFu0ll_BFs0s { unsigned char :0; signed char :0; unsigned long long :0; signed short :0; };
struct BFu0c_BFs0c_BFu0ll_BFu0c { unsigned char :0; signed char :0; unsigned long long :0; unsigned char :0; };
struct BFu0c_BFs0c_BFu0ll_BFu0i { unsigned char :0; signed char :0; unsigned long long :0; unsigned int :0; };
struct BFu0c_BFs0c_BFu0ll_BFu0ll { unsigned char :0; signed char :0; unsigned long long :0; unsigned long long :0; };
struct BFu0c_BFs0c_BFu0ll_BFu0s { unsigned char :0; signed char :0; unsigned long long :0; unsigned short :0; };
struct BFu0c_BFs0c_BFu0s { unsigned char :0; signed char :0; unsigned short :0; };
struct BFu0c_BFs0c_BFu0s_BFs0c { unsigned char :0; signed char :0; unsigned short :0; signed char :0; };
struct BFu0c_BFs0c_BFu0s_BFs0i { unsigned char :0; signed char :0; unsigned short :0; signed int :0; };
struct BFu0c_BFs0c_BFu0s_BFs0ll { unsigned char :0; signed char :0; unsigned short :0; signed long long :0; };
struct BFu0c_BFs0c_BFu0s_BFs0s { unsigned char :0; signed char :0; unsigned short :0; signed short :0; };
struct BFu0c_BFs0c_BFu0s_BFu0c { unsigned char :0; signed char :0; unsigned short :0; unsigned char :0; };
struct BFu0c_BFs0c_BFu0s_BFu0i { unsigned char :0; signed char :0; unsigned short :0; unsigned int :0; };
struct BFu0c_BFs0c_BFu0s_BFu0ll { unsigned char :0; signed char :0; unsigned short :0; unsigned long long :0; };
struct BFu0c_BFs0c_BFu0s_BFu0s { unsigned char :0; signed char :0; unsigned short :0; unsigned short :0; };
struct BFu0c_BFs0i { unsigned char :0; signed int :0; };
struct BFu0c_BFs0i_BFs0c { unsigned char :0; signed int :0; signed char :0; };
struct BFu0c_BFs0i_BFs0c_BFs0c { unsigned char :0; signed int :0; signed char :0; signed char :0; };
struct BFu0c_BFs0i_BFs0c_BFs0i { unsigned char :0; signed int :0; signed char :0; signed int :0; };
struct BFu0c_BFs0i_BFs0c_BFs0ll { unsigned char :0; signed int :0; signed char :0; signed long long :0; };
struct BFu0c_BFs0i_BFs0c_BFs0s { unsigned char :0; signed int :0; signed char :0; signed short :0; };
struct BFu0c_BFs0i_BFs0c_BFu0c { unsigned char :0; signed int :0; signed char :0; unsigned char :0; };
struct BFu0c_BFs0i_BFs0c_BFu0i { unsigned char :0; signed int :0; signed char :0; unsigned int :0; };
struct BFu0c_BFs0i_BFs0c_BFu0ll { unsigned char :0; signed int :0; signed char :0; unsigned long long :0; };
struct BFu0c_BFs0i_BFs0c_BFu0s { unsigned char :0; signed int :0; signed char :0; unsigned short :0; };
struct BFu0c_BFs0i_BFs0i { unsigned char :0; signed int :0; signed int :0; };
struct BFu0c_BFs0i_BFs0i_BFs0c { unsigned char :0; signed int :0; signed int :0; signed char :0; };
struct BFu0c_BFs0i_BFs0i_BFs0i { unsigned char :0; signed int :0; signed int :0; signed int :0; };
struct BFu0c_BFs0i_BFs0i_BFs0ll { unsigned char :0; signed int :0; signed int :0; signed long long :0; };
struct BFu0c_BFs0i_BFs0i_BFs0s { unsigned char :0; signed int :0; signed int :0; signed short :0; };
struct BFu0c_BFs0i_BFs0i_BFu0c { unsigned char :0; signed int :0; signed int :0; unsigned char :0; };
struct BFu0c_BFs0i_BFs0i_BFu0i { unsigned char :0; signed int :0; signed int :0; unsigned int :0; };
struct BFu0c_BFs0i_BFs0i_BFu0ll { unsigned char :0; signed int :0; signed int :0; unsigned long long :0; };
struct BFu0c_BFs0i_BFs0i_BFu0s { unsigned char :0; signed int :0; signed int :0; unsigned short :0; };
struct BFu0c_BFs0i_BFs0ll { unsigned char :0; signed int :0; signed long long :0; };
struct BFu0c_BFs0i_BFs0ll_BFs0c { unsigned char :0; signed int :0; signed long long :0; signed char :0; };
struct BFu0c_BFs0i_BFs0ll_BFs0i { unsigned char :0; signed int :0; signed long long :0; signed int :0; };
struct BFu0c_BFs0i_BFs0ll_BFs0ll { unsigned char :0; signed int :0; signed long long :0; signed long long :0; };
struct BFu0c_BFs0i_BFs0ll_BFs0s { unsigned char :0; signed int :0; signed long long :0; signed short :0; };
struct BFu0c_BFs0i_BFs0ll_BFu0c { unsigned char :0; signed int :0; signed long long :0; unsigned char :0; };
struct BFu0c_BFs0i_BFs0ll_BFu0i { unsigned char :0; signed int :0; signed long long :0; unsigned int :0; };
struct BFu0c_BFs0i_BFs0ll_BFu0ll { unsigned char :0; signed int :0; signed long long :0; unsigned long long :0; };
struct BFu0c_BFs0i_BFs0ll_BFu0s { unsigned char :0; signed int :0; signed long long :0; unsigned short :0; };
struct BFu0c_BFs0i_BFs0s { unsigned char :0; signed int :0; signed short :0; };
struct BFu0c_BFs0i_BFs0s_BFs0c { unsigned char :0; signed int :0; signed short :0; signed char :0; };
struct BFu0c_BFs0i_BFs0s_BFs0i { unsigned char :0; signed int :0; signed short :0; signed int :0; };
struct BFu0c_BFs0i_BFs0s_BFs0ll { unsigned char :0; signed int :0; signed short :0; signed long long :0; };
struct BFu0c_BFs0i_BFs0s_BFs0s { unsigned char :0; signed int :0; signed short :0; signed short :0; };
struct BFu0c_BFs0i_BFs0s_BFu0c { unsigned char :0; signed int :0; signed short :0; unsigned char :0; };
struct BFu0c_BFs0i_BFs0s_BFu0i { unsigned char :0; signed int :0; signed short :0; unsigned int :0; };
struct BFu0c_BFs0i_BFs0s_BFu0ll { unsigned char :0; signed int :0; signed short :0; unsigned long long :0; };
struct BFu0c_BFs0i_BFs0s_BFu0s { unsigned char :0; signed int :0; signed short :0; unsigned short :0; };
struct BFu0c_BFs0i_BFu0c { unsigned char :0; signed int :0; unsigned char :0; };
struct BFu0c_BFs0i_BFu0c_BFs0c { unsigned char :0; signed int :0; unsigned char :0; signed char :0; };
struct BFu0c_BFs0i_BFu0c_BFs0i { unsigned char :0; signed int :0; unsigned char :0; signed int :0; };
struct BFu0c_BFs0i_BFu0c_BFs0ll { unsigned char :0; signed int :0; unsigned char :0; signed long long :0; };
struct BFu0c_BFs0i_BFu0c_BFs0s { unsigned char :0; signed int :0; unsigned char :0; signed short :0; };
struct BFu0c_BFs0i_BFu0c_BFu0c { unsigned char :0; signed int :0; unsigned char :0; unsigned char :0; };
struct BFu0c_BFs0i_BFu0c_BFu0i { unsigned char :0; signed int :0; unsigned char :0; unsigned int :0; };
struct BFu0c_BFs0i_BFu0c_BFu0ll { unsigned char :0; signed int :0; unsigned char :0; unsigned long long :0; };
struct BFu0c_BFs0i_BFu0c_BFu0s { unsigned char :0; signed int :0; unsigned char :0; unsigned short :0; };
struct BFu0c_BFs0i_BFu0i { unsigned char :0; signed int :0; unsigned int :0; };
struct BFu0c_BFs0i_BFu0i_BFs0c { unsigned char :0; signed int :0; unsigned int :0; signed char :0; };
struct BFu0c_BFs0i_BFu0i_BFs0i { unsigned char :0; signed int :0; unsigned int :0; signed int :0; };
struct BFu0c_BFs0i_BFu0i_BFs0ll { unsigned char :0; signed int :0; unsigned int :0; signed long long :0; };
struct BFu0c_BFs0i_BFu0i_BFs0s { unsigned char :0; signed int :0; unsigned int :0; signed short :0; };
struct BFu0c_BFs0i_BFu0i_BFu0c { unsigned char :0; signed int :0; unsigned int :0; unsigned char :0; };
struct BFu0c_BFs0i_BFu0i_BFu0i { unsigned char :0; signed int :0; unsigned int :0; unsigned int :0; };
struct BFu0c_BFs0i_BFu0i_BFu0ll { unsigned char :0; signed int :0; unsigned int :0; unsigned long long :0; };
struct BFu0c_BFs0i_BFu0i_BFu0s { unsigned char :0; signed int :0; unsigned int :0; unsigned short :0; };
struct BFu0c_BFs0i_BFu0ll { unsigned char :0; signed int :0; unsigned long long :0; };
struct BFu0c_BFs0i_BFu0ll_BFs0c { unsigned char :0; signed int :0; unsigned long long :0; signed char :0; };
struct BFu0c_BFs0i_BFu0ll_BFs0i { unsigned char :0; signed int :0; unsigned long long :0; signed int :0; };
struct BFu0c_BFs0i_BFu0ll_BFs0ll { unsigned char :0; signed int :0; unsigned long long :0; signed long long :0; };
struct BFu0c_BFs0i_BFu0ll_BFs0s { unsigned char :0; signed int :0; unsigned long long :0; signed short :0; };
struct BFu0c_BFs0i_BFu0ll_BFu0c { unsigned char :0; signed int :0; unsigned long long :0; unsigned char :0; };
struct BFu0c_BFs0i_BFu0ll_BFu0i { unsigned char :0; signed int :0; unsigned long long :0; unsigned int :0; };
struct BFu0c_BFs0i_BFu0ll_BFu0ll { unsigned char :0; signed int :0; unsigned long long :0; unsigned long long :0; };
struct BFu0c_BFs0i_BFu0ll_BFu0s { unsigned char :0; signed int :0; unsigned long long :0; unsigned short :0; };
struct BFu0c_BFs0i_BFu0s { unsigned char :0; signed int :0; unsigned short :0; };
struct BFu0c_BFs0i_BFu0s_BFs0c { unsigned char :0; signed int :0; unsigned short :0; signed char :0; };
struct BFu0c_BFs0i_BFu0s_BFs0i { unsigned char :0; signed int :0; unsigned short :0; signed int :0; };
struct BFu0c_BFs0i_BFu0s_BFs0ll { unsigned char :0; signed int :0; unsigned short :0; signed long long :0; };
struct BFu0c_BFs0i_BFu0s_BFs0s { unsigned char :0; signed int :0; unsigned short :0; signed short :0; };
struct BFu0c_BFs0i_BFu0s_BFu0c { unsigned char :0; signed int :0; unsigned short :0; unsigned char :0; };
struct BFu0c_BFs0i_BFu0s_BFu0i { unsigned char :0; signed int :0; unsigned short :0; unsigned int :0; };
struct BFu0c_BFs0i_BFu0s_BFu0ll { unsigned char :0; signed int :0; unsigned short :0; unsigned long long :0; };
struct BFu0c_BFs0i_BFu0s_BFu0s { unsigned char :0; signed int :0; unsigned short :0; unsigned short :0; };
struct BFu0c_BFs0ll { unsigned char :0; signed long long :0; };
struct BFu0c_BFs0ll_BFs0c { unsigned char :0; signed long long :0; signed char :0; };
struct BFu0c_BFs0ll_BFs0c_BFs0c { unsigned char :0; signed long long :0; signed char :0; signed char :0; };
struct BFu0c_BFs0ll_BFs0c_BFs0i { unsigned char :0; signed long long :0; signed char :0; signed int :0; };
struct BFu0c_BFs0ll_BFs0c_BFs0ll { unsigned char :0; signed long long :0; signed char :0; signed long long :0; };
struct BFu0c_BFs0ll_BFs0c_BFs0s { unsigned char :0; signed long long :0; signed char :0; signed short :0; };
struct BFu0c_BFs0ll_BFs0c_BFu0c { unsigned char :0; signed long long :0; signed char :0; unsigned char :0; };
struct BFu0c_BFs0ll_BFs0c_BFu0i { unsigned char :0; signed long long :0; signed char :0; unsigned int :0; };
struct BFu0c_BFs0ll_BFs0c_BFu0ll { unsigned char :0; signed long long :0; signed char :0; unsigned long long :0; };
struct BFu0c_BFs0ll_BFs0c_BFu0s { unsigned char :0; signed long long :0; signed char :0; unsigned short :0; };
struct BFu0c_BFs0ll_BFs0i { unsigned char :0; signed long long :0; signed int :0; };
struct BFu0c_BFs0ll_BFs0i_BFs0c { unsigned char :0; signed long long :0; signed int :0; signed char :0; };
struct BFu0c_BFs0ll_BFs0i_BFs0i { unsigned char :0; signed long long :0; signed int :0; signed int :0; };
struct BFu0c_BFs0ll_BFs0i_BFs0ll { unsigned char :0; signed long long :0; signed int :0; signed long long :0; };
struct BFu0c_BFs0ll_BFs0i_BFs0s { unsigned char :0; signed long long :0; signed int :0; signed short :0; };
struct BFu0c_BFs0ll_BFs0i_BFu0c { unsigned char :0; signed long long :0; signed int :0; unsigned char :0; };
struct BFu0c_BFs0ll_BFs0i_BFu0i { unsigned char :0; signed long long :0; signed int :0; unsigned int :0; };
struct BFu0c_BFs0ll_BFs0i_BFu0ll { unsigned char :0; signed long long :0; signed int :0; unsigned long long :0; };
struct BFu0c_BFs0ll_BFs0i_BFu0s { unsigned char :0; signed long long :0; signed int :0; unsigned short :0; };
struct BFu0c_BFs0ll_BFs0ll { unsigned char :0; signed long long :0; signed long long :0; };
struct BFu0c_BFs0ll_BFs0ll_BFs0c { unsigned char :0; signed long long :0; signed long long :0; signed char :0; };
struct BFu0c_BFs0ll_BFs0ll_BFs0i { unsigned char :0; signed long long :0; signed long long :0; signed int :0; };
struct BFu0c_BFs0ll_BFs0ll_BFs0ll { unsigned char :0; signed long long :0; signed long long :0; signed long long :0; };
struct BFu0c_BFs0ll_BFs0ll_BFs0s { unsigned char :0; signed long long :0; signed long long :0; signed short :0; };
struct BFu0c_BFs0ll_BFs0ll_BFu0c { unsigned char :0; signed long long :0; signed long long :0; unsigned char :0; };
struct BFu0c_BFs0ll_BFs0ll_BFu0i { unsigned char :0; signed long long :0; signed long long :0; unsigned int :0; };
struct BFu0c_BFs0ll_BFs0ll_BFu0ll { unsigned char :0; signed long long :0; signed long long :0; unsigned long long :0; };
struct BFu0c_BFs0ll_BFs0ll_BFu0s { unsigned char :0; signed long long :0; signed long long :0; unsigned short :0; };
struct BFu0c_BFs0ll_BFs0s { unsigned char :0; signed long long :0; signed short :0; };
struct BFu0c_BFs0ll_BFs0s_BFs0c { unsigned char :0; signed long long :0; signed short :0; signed char :0; };
struct BFu0c_BFs0ll_BFs0s_BFs0i { unsigned char :0; signed long long :0; signed short :0; signed int :0; };
struct BFu0c_BFs0ll_BFs0s_BFs0ll { unsigned char :0; signed long long :0; signed short :0; signed long long :0; };
struct BFu0c_BFs0ll_BFs0s_BFs0s { unsigned char :0; signed long long :0; signed short :0; signed short :0; };
struct BFu0c_BFs0ll_BFs0s_BFu0c { unsigned char :0; signed long long :0; signed short :0; unsigned char :0; };
struct BFu0c_BFs0ll_BFs0s_BFu0i { unsigned char :0; signed long long :0; signed short :0; unsigned int :0; };
struct BFu0c_BFs0ll_BFs0s_BFu0ll { unsigned char :0; signed long long :0; signed short :0; unsigned long long :0; };
struct BFu0c_BFs0ll_BFs0s_BFu0s { unsigned char :0; signed long long :0; signed short :0; unsigned short :0; };
struct BFu0c_BFs0ll_BFu0c { unsigned char :0; signed long long :0; unsigned char :0; };
struct BFu0c_BFs0ll_BFu0c_BFs0c { unsigned char :0; signed long long :0; unsigned char :0; signed char :0; };
struct BFu0c_BFs0ll_BFu0c_BFs0i { unsigned char :0; signed long long :0; unsigned char :0; signed int :0; };
struct BFu0c_BFs0ll_BFu0c_BFs0ll { unsigned char :0; signed long long :0; unsigned char :0; signed long long :0; };
struct BFu0c_BFs0ll_BFu0c_BFs0s { unsigned char :0; signed long long :0; unsigned char :0; signed short :0; };
struct BFu0c_BFs0ll_BFu0c_BFu0c { unsigned char :0; signed long long :0; unsigned char :0; unsigned char :0; };
struct BFu0c_BFs0ll_BFu0c_BFu0i { unsigned char :0; signed long long :0; unsigned char :0; unsigned int :0; };
struct BFu0c_BFs0ll_BFu0c_BFu0ll { unsigned char :0; signed long long :0; unsigned char :0; unsigned long long :0; };
struct BFu0c_BFs0ll_BFu0c_BFu0s { unsigned char :0; signed long long :0; unsigned char :0; unsigned short :0; };
struct BFu0c_BFs0ll_BFu0i { unsigned char :0; signed long long :0; unsigned int :0; };
struct BFu0c_BFs0ll_BFu0i_BFs0c { unsigned char :0; signed long long :0; unsigned int :0; signed char :0; };
struct BFu0c_BFs0ll_BFu0i_BFs0i { unsigned char :0; signed long long :0; unsigned int :0; signed int :0; };
struct BFu0c_BFs0ll_BFu0i_BFs0ll { unsigned char :0; signed long long :0; unsigned int :0; signed long long :0; };
struct BFu0c_BFs0ll_BFu0i_BFs0s { unsigned char :0; signed long long :0; unsigned int :0; signed short :0; };
struct BFu0c_BFs0ll_BFu0i_BFu0c { unsigned char :0; signed long long :0; unsigned int :0; unsigned char :0; };
struct BFu0c_BFs0ll_BFu0i_BFu0i { unsigned char :0; signed long long :0; unsigned int :0; unsigned int :0; };
struct BFu0c_BFs0ll_BFu0i_BFu0ll { unsigned char :0; signed long long :0; unsigned int :0; unsigned long long :0; };
struct BFu0c_BFs0ll_BFu0i_BFu0s { unsigned char :0; signed long long :0; unsigned int :0; unsigned short :0; };
struct BFu0c_BFs0ll_BFu0ll { unsigned char :0; signed long long :0; unsigned long long :0; };
struct BFu0c_BFs0ll_BFu0ll_BFs0c { unsigned char :0; signed long long :0; unsigned long long :0; signed char :0; };
struct BFu0c_BFs0ll_BFu0ll_BFs0i { unsigned char :0; signed long long :0; unsigned long long :0; signed int :0; };
struct BFu0c_BFs0ll_BFu0ll_BFs0ll { unsigned char :0; signed long long :0; unsigned long long :0; signed long long :0; };
struct BFu0c_BFs0ll_BFu0ll_BFs0s { unsigned char :0; signed long long :0; unsigned long long :0; signed short :0; };
struct BFu0c_BFs0ll_BFu0ll_BFu0c { unsigned char :0; signed long long :0; unsigned long long :0; unsigned char :0; };
struct BFu0c_BFs0ll_BFu0ll_BFu0i { unsigned char :0; signed long long :0; unsigned long long :0; unsigned int :0; };
struct BFu0c_BFs0ll_BFu0ll_BFu0ll { unsigned char :0; signed long long :0; unsigned long long :0; unsigned long long :0; };
struct BFu0c_BFs0ll_BFu0ll_BFu0s { unsigned char :0; signed long long :0; unsigned long long :0; unsigned short :0; };
struct BFu0c_BFs0ll_BFu0s { unsigned char :0; signed long long :0; unsigned short :0; };
struct BFu0c_BFs0ll_BFu0s_BFs0c { unsigned char :0; signed long long :0; unsigned short :0; signed char :0; };
struct BFu0c_BFs0ll_BFu0s_BFs0i { unsigned char :0; signed long long :0; unsigned short :0; signed int :0; };
struct BFu0c_BFs0ll_BFu0s_BFs0ll { unsigned char :0; signed long long :0; unsigned short :0; signed long long :0; };
struct BFu0c_BFs0ll_BFu0s_BFs0s { unsigned char :0; signed long long :0; unsigned short :0; signed short :0; };
struct BFu0c_BFs0ll_BFu0s_BFu0c { unsigned char :0; signed long long :0; unsigned short :0; unsigned char :0; };
struct BFu0c_BFs0ll_BFu0s_BFu0i { unsigned char :0; signed long long :0; unsigned short :0; unsigned int :0; };
struct BFu0c_BFs0ll_BFu0s_BFu0ll { unsigned char :0; signed long long :0; unsigned short :0; unsigned long long :0; };
struct BFu0c_BFs0ll_BFu0s_BFu0s { unsigned char :0; signed long long :0; unsigned short :0; unsigned short :0; };
struct BFu0c_BFs0s { unsigned char :0; signed short :0; };
struct BFu0c_BFs0s_BFs0c { unsigned char :0; signed short :0; signed char :0; };
struct BFu0c_BFs0s_BFs0c_BFs0c { unsigned char :0; signed short :0; signed char :0; signed char :0; };
struct BFu0c_BFs0s_BFs0c_BFs0i { unsigned char :0; signed short :0; signed char :0; signed int :0; };
struct BFu0c_BFs0s_BFs0c_BFs0ll { unsigned char :0; signed short :0; signed char :0; signed long long :0; };
struct BFu0c_BFs0s_BFs0c_BFs0s { unsigned char :0; signed short :0; signed char :0; signed short :0; };
struct BFu0c_BFs0s_BFs0c_BFu0c { unsigned char :0; signed short :0; signed char :0; unsigned char :0; };
struct BFu0c_BFs0s_BFs0c_BFu0i { unsigned char :0; signed short :0; signed char :0; unsigned int :0; };
struct BFu0c_BFs0s_BFs0c_BFu0ll { unsigned char :0; signed short :0; signed char :0; unsigned long long :0; };
struct BFu0c_BFs0s_BFs0c_BFu0s { unsigned char :0; signed short :0; signed char :0; unsigned short :0; };
struct BFu0c_BFs0s_BFs0i { unsigned char :0; signed short :0; signed int :0; };
struct BFu0c_BFs0s_BFs0i_BFs0c { unsigned char :0; signed short :0; signed int :0; signed char :0; };
struct BFu0c_BFs0s_BFs0i_BFs0i { unsigned char :0; signed short :0; signed int :0; signed int :0; };
struct BFu0c_BFs0s_BFs0i_BFs0ll { unsigned char :0; signed short :0; signed int :0; signed long long :0; };
struct BFu0c_BFs0s_BFs0i_BFs0s { unsigned char :0; signed short :0; signed int :0; signed short :0; };
struct BFu0c_BFs0s_BFs0i_BFu0c { unsigned char :0; signed short :0; signed int :0; unsigned char :0; };
struct BFu0c_BFs0s_BFs0i_BFu0i { unsigned char :0; signed short :0; signed int :0; unsigned int :0; };
struct BFu0c_BFs0s_BFs0i_BFu0ll { unsigned char :0; signed short :0; signed int :0; unsigned long long :0; };
struct BFu0c_BFs0s_BFs0i_BFu0s { unsigned char :0; signed short :0; signed int :0; unsigned short :0; };
struct BFu0c_BFs0s_BFs0ll { unsigned char :0; signed short :0; signed long long :0; };
struct BFu0c_BFs0s_BFs0ll_BFs0c { unsigned char :0; signed short :0; signed long long :0; signed char :0; };
struct BFu0c_BFs0s_BFs0ll_BFs0i { unsigned char :0; signed short :0; signed long long :0; signed int :0; };
struct BFu0c_BFs0s_BFs0ll_BFs0ll { unsigned char :0; signed short :0; signed long long :0; signed long long :0; };
struct BFu0c_BFs0s_BFs0ll_BFs0s { unsigned char :0; signed short :0; signed long long :0; signed short :0; };
struct BFu0c_BFs0s_BFs0ll_BFu0c { unsigned char :0; signed short :0; signed long long :0; unsigned char :0; };
struct BFu0c_BFs0s_BFs0ll_BFu0i { unsigned char :0; signed short :0; signed long long :0; unsigned int :0; };
struct BFu0c_BFs0s_BFs0ll_BFu0ll { unsigned char :0; signed short :0; signed long long :0; unsigned long long :0; };
struct BFu0c_BFs0s_BFs0ll_BFu0s { unsigned char :0; signed short :0; signed long long :0; unsigned short :0; };
struct BFu0c_BFs0s_BFs0s { unsigned char :0; signed short :0; signed short :0; };
struct BFu0c_BFs0s_BFs0s_BFs0c { unsigned char :0; signed short :0; signed short :0; signed char :0; };
struct BFu0c_BFs0s_BFs0s_BFs0i { unsigned char :0; signed short :0; signed short :0; signed int :0; };
struct BFu0c_BFs0s_BFs0s_BFs0ll { unsigned char :0; signed short :0; signed short :0; signed long long :0; };
struct BFu0c_BFs0s_BFs0s_BFs0s { unsigned char :0; signed short :0; signed short :0; signed short :0; };
struct BFu0c_BFs0s_BFs0s_BFu0c { unsigned char :0; signed short :0; signed short :0; unsigned char :0; };
struct BFu0c_BFs0s_BFs0s_BFu0i { unsigned char :0; signed short :0; signed short :0; unsigned int :0; };
struct BFu0c_BFs0s_BFs0s_BFu0ll { unsigned char :0; signed short :0; signed short :0; unsigned long long :0; };
struct BFu0c_BFs0s_BFs0s_BFu0s { unsigned char :0; signed short :0; signed short :0; unsigned short :0; };
struct BFu0c_BFs0s_BFu0c { unsigned char :0; signed short :0; unsigned char :0; };
struct BFu0c_BFs0s_BFu0c_BFs0c { unsigned char :0; signed short :0; unsigned char :0; signed char :0; };
struct BFu0c_BFs0s_BFu0c_BFs0i { unsigned char :0; signed short :0; unsigned char :0; signed int :0; };
struct BFu0c_BFs0s_BFu0c_BFs0ll { unsigned char :0; signed short :0; unsigned char :0; signed long long :0; };
struct BFu0c_BFs0s_BFu0c_BFs0s { unsigned char :0; signed short :0; unsigned char :0; signed short :0; };
struct BFu0c_BFs0s_BFu0c_BFu0c { unsigned char :0; signed short :0; unsigned char :0; unsigned char :0; };
struct BFu0c_BFs0s_BFu0c_BFu0i { unsigned char :0; signed short :0; unsigned char :0; unsigned int :0; };
struct BFu0c_BFs0s_BFu0c_BFu0ll { unsigned char :0; signed short :0; unsigned char :0; unsigned long long :0; };
struct BFu0c_BFs0s_BFu0c_BFu0s { unsigned char :0; signed short :0; unsigned char :0; unsigned short :0; };
struct BFu0c_BFs0s_BFu0i { unsigned char :0; signed short :0; unsigned int :0; };
struct BFu0c_BFs0s_BFu0i_BFs0c { unsigned char :0; signed short :0; unsigned int :0; signed char :0; };
struct BFu0c_BFs0s_BFu0i_BFs0i { unsigned char :0; signed short :0; unsigned int :0; signed int :0; };
struct BFu0c_BFs0s_BFu0i_BFs0ll { unsigned char :0; signed short :0; unsigned int :0; signed long long :0; };
struct BFu0c_BFs0s_BFu0i_BFs0s { unsigned char :0; signed short :0; unsigned int :0; signed short :0; };
struct BFu0c_BFs0s_BFu0i_BFu0c { unsigned char :0; signed short :0; unsigned int :0; unsigned char :0; };
struct BFu0c_BFs0s_BFu0i_BFu0i { unsigned char :0; signed short :0; unsigned int :0; unsigned int :0; };
struct BFu0c_BFs0s_BFu0i_BFu0ll { unsigned char :0; signed short :0; unsigned int :0; unsigned long long :0; };
struct BFu0c_BFs0s_BFu0i_BFu0s { unsigned char :0; signed short :0; unsigned int :0; unsigned short :0; };
struct BFu0c_BFs0s_BFu0ll { unsigned char :0; signed short :0; unsigned long long :0; };
struct BFu0c_BFs0s_BFu0ll_BFs0c { unsigned char :0; signed short :0; unsigned long long :0; signed char :0; };
struct BFu0c_BFs0s_BFu0ll_BFs0i { unsigned char :0; signed short :0; unsigned long long :0; signed int :0; };
struct BFu0c_BFs0s_BFu0ll_BFs0ll { unsigned char :0; signed short :0; unsigned long long :0; signed long long :0; };
struct BFu0c_BFs0s_BFu0ll_BFs0s { unsigned char :0; signed short :0; unsigned long long :0; signed short :0; };
struct BFu0c_BFs0s_BFu0ll_BFu0c { unsigned char :0; signed short :0; unsigned long long :0; unsigned char :0; };
struct BFu0c_BFs0s_BFu0ll_BFu0i { unsigned char :0; signed short :0; unsigned long long :0; unsigned int :0; };
struct BFu0c_BFs0s_BFu0ll_BFu0ll { unsigned char :0; signed short :0; unsigned long long :0; unsigned long long :0; };
struct BFu0c_BFs0s_BFu0ll_BFu0s { unsigned char :0; signed short :0; unsigned long long :0; unsigned short :0; };
struct BFu0c_BFs0s_BFu0s { unsigned char :0; signed short :0; unsigned short :0; };
struct BFu0c_BFs0s_BFu0s_BFs0c { unsigned char :0; signed short :0; unsigned short :0; signed char :0; };
struct BFu0c_BFs0s_BFu0s_BFs0i { unsigned char :0; signed short :0; unsigned short :0; signed int :0; };
struct BFu0c_BFs0s_BFu0s_BFs0ll { unsigned char :0; signed short :0; unsigned short :0; signed long long :0; };
struct BFu0c_BFs0s_BFu0s_BFs0s { unsigned char :0; signed short :0; unsigned short :0; signed short :0; };
struct BFu0c_BFs0s_BFu0s_BFu0c { unsigned char :0; signed short :0; unsigned short :0; unsigned char :0; };
struct BFu0c_BFs0s_BFu0s_BFu0i { unsigned char :0; signed short :0; unsigned short :0; unsigned int :0; };
struct BFu0c_BFs0s_BFu0s_BFu0ll { unsigned char :0; signed short :0; unsigned short :0; unsigned long long :0; };
struct BFu0c_BFs0s_BFu0s_BFu0s { unsigned char :0; signed short :0; unsigned short :0; unsigned short :0; };
struct BFu0c_BFu0c { unsigned char :0; unsigned char :0; };
struct BFu0c_BFu0c_BFs0c { unsigned char :0; unsigned char :0; signed char :0; };
struct BFu0c_BFu0c_BFs0c_BFs0c { unsigned char :0; unsigned char :0; signed char :0; signed char :0; };
struct BFu0c_BFu0c_BFs0c_BFs0i { unsigned char :0; unsigned char :0; signed char :0; signed int :0; };
struct BFu0c_BFu0c_BFs0c_BFs0ll { unsigned char :0; unsigned char :0; signed char :0; signed long long :0; };
struct BFu0c_BFu0c_BFs0c_BFs0s { unsigned char :0; unsigned char :0; signed char :0; signed short :0; };
struct BFu0c_BFu0c_BFs0c_BFu0c { unsigned char :0; unsigned char :0; signed char :0; unsigned char :0; };
struct BFu0c_BFu0c_BFs0c_BFu0i { unsigned char :0; unsigned char :0; signed char :0; unsigned int :0; };
struct BFu0c_BFu0c_BFs0c_BFu0ll { unsigned char :0; unsigned char :0; signed char :0; unsigned long long :0; };
struct BFu0c_BFu0c_BFs0c_BFu0s { unsigned char :0; unsigned char :0; signed char :0; unsigned short :0; };
struct BFu0c_BFu0c_BFs0i { unsigned char :0; unsigned char :0; signed int :0; };
struct BFu0c_BFu0c_BFs0i_BFs0c { unsigned char :0; unsigned char :0; signed int :0; signed char :0; };
struct BFu0c_BFu0c_BFs0i_BFs0i { unsigned char :0; unsigned char :0; signed int :0; signed int :0; };
struct BFu0c_BFu0c_BFs0i_BFs0ll { unsigned char :0; unsigned char :0; signed int :0; signed long long :0; };
struct BFu0c_BFu0c_BFs0i_BFs0s { unsigned char :0; unsigned char :0; signed int :0; signed short :0; };
struct BFu0c_BFu0c_BFs0i_BFu0c { unsigned char :0; unsigned char :0; signed int :0; unsigned char :0; };
struct BFu0c_BFu0c_BFs0i_BFu0i { unsigned char :0; unsigned char :0; signed int :0; unsigned int :0; };
struct BFu0c_BFu0c_BFs0i_BFu0ll { unsigned char :0; unsigned char :0; signed int :0; unsigned long long :0; };
struct BFu0c_BFu0c_BFs0i_BFu0s { unsigned char :0; unsigned char :0; signed int :0; unsigned short :0; };
struct BFu0c_BFu0c_BFs0ll { unsigned char :0; unsigned char :0; signed long long :0; };
struct BFu0c_BFu0c_BFs0ll_BFs0c { unsigned char :0; unsigned char :0; signed long long :0; signed char :0; };
struct BFu0c_BFu0c_BFs0ll_BFs0i { unsigned char :0; unsigned char :0; signed long long :0; signed int :0; };
struct BFu0c_BFu0c_BFs0ll_BFs0ll { unsigned char :0; unsigned char :0; signed long long :0; signed long long :0; };
struct BFu0c_BFu0c_BFs0ll_BFs0s { unsigned char :0; unsigned char :0; signed long long :0; signed short :0; };
struct BFu0c_BFu0c_BFs0ll_BFu0c { unsigned char :0; unsigned char :0; signed long long :0; unsigned char :0; };
struct BFu0c_BFu0c_BFs0ll_BFu0i { unsigned char :0; unsigned char :0; signed long long :0; unsigned int :0; };
struct BFu0c_BFu0c_BFs0ll_BFu0ll { unsigned char :0; unsigned char :0; signed long long :0; unsigned long long :0; };
struct BFu0c_BFu0c_BFs0ll_BFu0s { unsigned char :0; unsigned char :0; signed long long :0; unsigned short :0; };
struct BFu0c_BFu0c_BFs0s { unsigned char :0; unsigned char :0; signed short :0; };
struct BFu0c_BFu0c_BFs0s_BFs0c { unsigned char :0; unsigned char :0; signed short :0; signed char :0; };
struct BFu0c_BFu0c_BFs0s_BFs0i { unsigned char :0; unsigned char :0; signed short :0; signed int :0; };
struct BFu0c_BFu0c_BFs0s_BFs0ll { unsigned char :0; unsigned char :0; signed short :0; signed long long :0; };
struct BFu0c_BFu0c_BFs0s_BFs0s { unsigned char :0; unsigned char :0; signed short :0; signed short :0; };
struct BFu0c_BFu0c_BFs0s_BFu0c { unsigned char :0; unsigned char :0; signed short :0; unsigned char :0; };
struct BFu0c_BFu0c_BFs0s_BFu0i { unsigned char :0; unsigned char :0; signed short :0; unsigned int :0; };
struct BFu0c_BFu0c_BFs0s_BFu0ll { unsigned char :0; unsigned char :0; signed short :0; unsigned long long :0; };
struct BFu0c_BFu0c_BFs0s_BFu0s { unsigned char :0; unsigned char :0; signed short :0; unsigned short :0; };
struct BFu0c_BFu0c_BFu0c { unsigned char :0; unsigned char :0; unsigned char :0; };
struct BFu0c_BFu0c_BFu0c_BFs0c { unsigned char :0; unsigned char :0; unsigned char :0; signed char :0; };
struct BFu0c_BFu0c_BFu0c_BFs0i { unsigned char :0; unsigned char :0; unsigned char :0; signed int :0; };
struct BFu0c_BFu0c_BFu0c_BFs0ll { unsigned char :0; unsigned char :0; unsigned char :0; signed long long :0; };
struct BFu0c_BFu0c_BFu0c_BFs0s { unsigned char :0; unsigned char :0; unsigned char :0; signed short :0; };
struct BFu0c_BFu0c_BFu0c_BFu0c { unsigned char :0; unsigned char :0; unsigned char :0; unsigned char :0; };
struct BFu0c_BFu0c_BFu0c_BFu0i { unsigned char :0; unsigned char :0; unsigned char :0; unsigned int :0; };
struct BFu0c_BFu0c_BFu0c_BFu0ll { unsigned char :0; unsigned char :0; unsigned char :0; unsigned long long :0; };
struct BFu0c_BFu0c_BFu0c_BFu0s { unsigned char :0; unsigned char :0; unsigned char :0; unsigned short :0; };
struct BFu0c_BFu0c_BFu0i { unsigned char :0; unsigned char :0; unsigned int :0; };
struct BFu0c_BFu0c_BFu0i_BFs0c { unsigned char :0; unsigned char :0; unsigned int :0; signed char :0; };
struct BFu0c_BFu0c_BFu0i_BFs0i { unsigned char :0; unsigned char :0; unsigned int :0; signed int :0; };
struct BFu0c_BFu0c_BFu0i_BFs0ll { unsigned char :0; unsigned char :0; unsigned int :0; signed long long :0; };
struct BFu0c_BFu0c_BFu0i_BFs0s { unsigned char :0; unsigned char :0; unsigned int :0; signed short :0; };
struct BFu0c_BFu0c_BFu0i_BFu0c { unsigned char :0; unsigned char :0; unsigned int :0; unsigned char :0; };
struct BFu0c_BFu0c_BFu0i_BFu0i { unsigned char :0; unsigned char :0; unsigned int :0; unsigned int :0; };
struct BFu0c_BFu0c_BFu0i_BFu0ll { unsigned char :0; unsigned char :0; unsigned int :0; unsigned long long :0; };
struct BFu0c_BFu0c_BFu0i_BFu0s { unsigned char :0; unsigned char :0; unsigned int :0; unsigned short :0; };
struct BFu0c_BFu0c_BFu0ll { unsigned char :0; unsigned char :0; unsigned long long :0; };
struct BFu0c_BFu0c_BFu0ll_BFs0c { unsigned char :0; unsigned char :0; unsigned long long :0; signed char :0; };
struct BFu0c_BFu0c_BFu0ll_BFs0i { unsigned char :0; unsigned char :0; unsigned long long :0; signed int :0; };
struct BFu0c_BFu0c_BFu0ll_BFs0ll { unsigned char :0; unsigned char :0; unsigned long long :0; signed long long :0; };
struct BFu0c_BFu0c_BFu0ll_BFs0s { unsigned char :0; unsigned char :0; unsigned long long :0; signed short :0; };
struct BFu0c_BFu0c_BFu0ll_BFu0c { unsigned char :0; unsigned char :0; unsigned long long :0; unsigned char :0; };
struct BFu0c_BFu0c_BFu0ll_BFu0i { unsigned char :0; unsigned char :0; unsigned long long :0; unsigned int :0; };
struct BFu0c_BFu0c_BFu0ll_BFu0ll { unsigned char :0; unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct BFu0c_BFu0c_BFu0ll_BFu0s { unsigned char :0; unsigned char :0; unsigned long long :0; unsigned short :0; };
struct BFu0c_BFu0c_BFu0s { unsigned char :0; unsigned char :0; unsigned short :0; };
struct BFu0c_BFu0c_BFu0s_BFs0c { unsigned char :0; unsigned char :0; unsigned short :0; signed char :0; };
struct BFu0c_BFu0c_BFu0s_BFs0i { unsigned char :0; unsigned char :0; unsigned short :0; signed int :0; };
struct BFu0c_BFu0c_BFu0s_BFs0ll { unsigned char :0; unsigned char :0; unsigned short :0; signed long long :0; };
struct BFu0c_BFu0c_BFu0s_BFs0s { unsigned char :0; unsigned char :0; unsigned short :0; signed short :0; };
struct BFu0c_BFu0c_BFu0s_BFu0c { unsigned char :0; unsigned char :0; unsigned short :0; unsigned char :0; };
struct BFu0c_BFu0c_BFu0s_BFu0i { unsigned char :0; unsigned char :0; unsigned short :0; unsigned int :0; };
struct BFu0c_BFu0c_BFu0s_BFu0ll { unsigned char :0; unsigned char :0; unsigned short :0; unsigned long long :0; };
struct BFu0c_BFu0c_BFu0s_BFu0s { unsigned char :0; unsigned char :0; unsigned short :0; unsigned short :0; };
struct BFu0c_BFu0c_BFu15i { unsigned char :0; unsigned char :0; unsigned int v1:15; };
struct BFu0c_BFu0c_BFu15ll { unsigned char :0; unsigned char :0; unsigned long long v1:15; };
struct BFu0c_BFu0c_BFu15s { unsigned char :0; unsigned char :0; unsigned short v1:15; };
struct BFu0c_BFu0c_BFu16i { unsigned char :0; unsigned char :0; unsigned int v1:16; };
struct BFu0c_BFu0c_BFu16ll { unsigned char :0; unsigned char :0; unsigned long long v1:16; };
struct BFu0c_BFu0c_BFu16s { unsigned char :0; unsigned char :0; unsigned short v1:16; };
struct BFu0c_BFu0c_BFu17i { unsigned char :0; unsigned char :0; unsigned int v1:17; };
struct BFu0c_BFu0c_BFu17ll { unsigned char :0; unsigned char :0; unsigned long long v1:17; };
struct BFu0c_BFu0c_BFu1c { unsigned char :0; unsigned char :0; unsigned char v1:1; };
struct BFu0c_BFu0c_BFu1i { unsigned char :0; unsigned char :0; unsigned int v1:1; };
struct BFu0c_BFu0c_BFu1ll { unsigned char :0; unsigned char :0; unsigned long long v1:1; };
struct BFu0c_BFu0c_BFu1s { unsigned char :0; unsigned char :0; unsigned short v1:1; };
struct BFu0c_BFu0c_BFu31i { unsigned char :0; unsigned char :0; unsigned int v1:31; };
struct BFu0c_BFu0c_BFu31ll { unsigned char :0; unsigned char :0; unsigned long long v1:31; };
struct BFu0c_BFu0c_BFu32i { unsigned char :0; unsigned char :0; unsigned int v1:32; };
struct BFu0c_BFu0c_BFu32ll { unsigned char :0; unsigned char :0; unsigned long long v1:32; };
struct BFu0c_BFu0c_BFu33 { unsigned char :0; unsigned char :0; unsigned long long v1:33; };
struct BFu0c_BFu0c_BFu7c { unsigned char :0; unsigned char :0; unsigned char v1:7; };
struct BFu0c_BFu0c_BFu7i { unsigned char :0; unsigned char :0; unsigned int v1:7; };
struct BFu0c_BFu0c_BFu7ll { unsigned char :0; unsigned char :0; unsigned long long v1:7; };
struct BFu0c_BFu0c_BFu7s { unsigned char :0; unsigned char :0; unsigned short v1:7; };
struct BFu0c_BFu0c_BFu8c { unsigned char :0; unsigned char :0; unsigned char v1:8; };
struct BFu0c_BFu0c_BFu8i { unsigned char :0; unsigned char :0; unsigned int v1:8; };
struct BFu0c_BFu0c_BFu8ll { unsigned char :0; unsigned char :0; unsigned long long v1:8; };
struct BFu0c_BFu0c_BFu8s { unsigned char :0; unsigned char :0; unsigned short v1:8; };
struct BFu0c_BFu0c_BFu9i { unsigned char :0; unsigned char :0; unsigned int v1:9; };
struct BFu0c_BFu0c_BFu9ll { unsigned char :0; unsigned char :0; unsigned long long v1:9; };
struct BFu0c_BFu0c_BFu9s { unsigned char :0; unsigned char :0; unsigned short v1:9; };
struct BFu0c_BFu0c_C { unsigned char :0; unsigned char :0; char v1; };
struct BFu0c_BFu0c_D { unsigned char :0; unsigned char :0; double v1; };
struct BFu0c_BFu0c_F { unsigned char :0; unsigned char :0; float v1; };
struct BFu0c_BFu0c_I { unsigned char :0; unsigned char :0; int v1; };
struct BFu0c_BFu0c_Ip { unsigned char :0; unsigned char :0; int * v1; };
struct BFu0c_BFu0c_L { unsigned char :0; unsigned char :0; long long v1; };
struct BFu0c_BFu0c_S { unsigned char :0; unsigned char :0; short v1; };
struct BFu0c_BFu0c_Uc { unsigned char :0; unsigned char :0; unsigned char v1; };
struct BFu0c_BFu0c_Ui { unsigned char :0; unsigned char :0; unsigned int v1; };
struct BFu0c_BFu0c_Ul { unsigned char :0; unsigned char :0; unsigned long long v1; };
struct BFu0c_BFu0c_Us { unsigned char :0; unsigned char :0; unsigned short v1; };
struct BFu0c_BFu0c_Vp { unsigned char :0; unsigned char :0; void * v1; };
struct BFu0c_BFu0i { unsigned char :0; unsigned int :0; };
struct BFu0c_BFu0i_BFs0c { unsigned char :0; unsigned int :0; signed char :0; };
struct BFu0c_BFu0i_BFs0c_BFs0c { unsigned char :0; unsigned int :0; signed char :0; signed char :0; };
struct BFu0c_BFu0i_BFs0c_BFs0i { unsigned char :0; unsigned int :0; signed char :0; signed int :0; };
struct BFu0c_BFu0i_BFs0c_BFs0ll { unsigned char :0; unsigned int :0; signed char :0; signed long long :0; };
struct BFu0c_BFu0i_BFs0c_BFs0s { unsigned char :0; unsigned int :0; signed char :0; signed short :0; };
struct BFu0c_BFu0i_BFs0c_BFu0c { unsigned char :0; unsigned int :0; signed char :0; unsigned char :0; };
struct BFu0c_BFu0i_BFs0c_BFu0i { unsigned char :0; unsigned int :0; signed char :0; unsigned int :0; };
struct BFu0c_BFu0i_BFs0c_BFu0ll { unsigned char :0; unsigned int :0; signed char :0; unsigned long long :0; };
struct BFu0c_BFu0i_BFs0c_BFu0s { unsigned char :0; unsigned int :0; signed char :0; unsigned short :0; };
struct BFu0c_BFu0i_BFs0i { unsigned char :0; unsigned int :0; signed int :0; };
struct BFu0c_BFu0i_BFs0i_BFs0c { unsigned char :0; unsigned int :0; signed int :0; signed char :0; };
struct BFu0c_BFu0i_BFs0i_BFs0i { unsigned char :0; unsigned int :0; signed int :0; signed int :0; };
struct BFu0c_BFu0i_BFs0i_BFs0ll { unsigned char :0; unsigned int :0; signed int :0; signed long long :0; };
struct BFu0c_BFu0i_BFs0i_BFs0s { unsigned char :0; unsigned int :0; signed int :0; signed short :0; };
struct BFu0c_BFu0i_BFs0i_BFu0c { unsigned char :0; unsigned int :0; signed int :0; unsigned char :0; };
struct BFu0c_BFu0i_BFs0i_BFu0i { unsigned char :0; unsigned int :0; signed int :0; unsigned int :0; };
struct BFu0c_BFu0i_BFs0i_BFu0ll { unsigned char :0; unsigned int :0; signed int :0; unsigned long long :0; };
struct BFu0c_BFu0i_BFs0i_BFu0s { unsigned char :0; unsigned int :0; signed int :0; unsigned short :0; };
struct BFu0c_BFu0i_BFs0ll { unsigned char :0; unsigned int :0; signed long long :0; };
struct BFu0c_BFu0i_BFs0ll_BFs0c { unsigned char :0; unsigned int :0; signed long long :0; signed char :0; };
struct BFu0c_BFu0i_BFs0ll_BFs0i { unsigned char :0; unsigned int :0; signed long long :0; signed int :0; };
struct BFu0c_BFu0i_BFs0ll_BFs0ll { unsigned char :0; unsigned int :0; signed long long :0; signed long long :0; };
struct BFu0c_BFu0i_BFs0ll_BFs0s { unsigned char :0; unsigned int :0; signed long long :0; signed short :0; };
struct BFu0c_BFu0i_BFs0ll_BFu0c { unsigned char :0; unsigned int :0; signed long long :0; unsigned char :0; };
struct BFu0c_BFu0i_BFs0ll_BFu0i { unsigned char :0; unsigned int :0; signed long long :0; unsigned int :0; };
struct BFu0c_BFu0i_BFs0ll_BFu0ll { unsigned char :0; unsigned int :0; signed long long :0; unsigned long long :0; };
struct BFu0c_BFu0i_BFs0ll_BFu0s { unsigned char :0; unsigned int :0; signed long long :0; unsigned short :0; };
struct BFu0c_BFu0i_BFs0s { unsigned char :0; unsigned int :0; signed short :0; };
struct BFu0c_BFu0i_BFs0s_BFs0c { unsigned char :0; unsigned int :0; signed short :0; signed char :0; };
struct BFu0c_BFu0i_BFs0s_BFs0i { unsigned char :0; unsigned int :0; signed short :0; signed int :0; };
struct BFu0c_BFu0i_BFs0s_BFs0ll { unsigned char :0; unsigned int :0; signed short :0; signed long long :0; };
struct BFu0c_BFu0i_BFs0s_BFs0s { unsigned char :0; unsigned int :0; signed short :0; signed short :0; };
struct BFu0c_BFu0i_BFs0s_BFu0c { unsigned char :0; unsigned int :0; signed short :0; unsigned char :0; };
struct BFu0c_BFu0i_BFs0s_BFu0i { unsigned char :0; unsigned int :0; signed short :0; unsigned int :0; };
struct BFu0c_BFu0i_BFs0s_BFu0ll { unsigned char :0; unsigned int :0; signed short :0; unsigned long long :0; };
struct BFu0c_BFu0i_BFs0s_BFu0s { unsigned char :0; unsigned int :0; signed short :0; unsigned short :0; };
struct BFu0c_BFu0i_BFu0c { unsigned char :0; unsigned int :0; unsigned char :0; };
struct BFu0c_BFu0i_BFu0c_BFs0c { unsigned char :0; unsigned int :0; unsigned char :0; signed char :0; };
struct BFu0c_BFu0i_BFu0c_BFs0i { unsigned char :0; unsigned int :0; unsigned char :0; signed int :0; };
struct BFu0c_BFu0i_BFu0c_BFs0ll { unsigned char :0; unsigned int :0; unsigned char :0; signed long long :0; };
struct BFu0c_BFu0i_BFu0c_BFs0s { unsigned char :0; unsigned int :0; unsigned char :0; signed short :0; };
struct BFu0c_BFu0i_BFu0c_BFu0c { unsigned char :0; unsigned int :0; unsigned char :0; unsigned char :0; };
struct BFu0c_BFu0i_BFu0c_BFu0i { unsigned char :0; unsigned int :0; unsigned char :0; unsigned int :0; };
struct BFu0c_BFu0i_BFu0c_BFu0ll { unsigned char :0; unsigned int :0; unsigned char :0; unsigned long long :0; };
struct BFu0c_BFu0i_BFu0c_BFu0s { unsigned char :0; unsigned int :0; unsigned char :0; unsigned short :0; };
struct BFu0c_BFu0i_BFu0i { unsigned char :0; unsigned int :0; unsigned int :0; };
struct BFu0c_BFu0i_BFu0i_BFs0c { unsigned char :0; unsigned int :0; unsigned int :0; signed char :0; };
struct BFu0c_BFu0i_BFu0i_BFs0i { unsigned char :0; unsigned int :0; unsigned int :0; signed int :0; };
struct BFu0c_BFu0i_BFu0i_BFs0ll { unsigned char :0; unsigned int :0; unsigned int :0; signed long long :0; };
struct BFu0c_BFu0i_BFu0i_BFs0s { unsigned char :0; unsigned int :0; unsigned int :0; signed short :0; };
struct BFu0c_BFu0i_BFu0i_BFu0c { unsigned char :0; unsigned int :0; unsigned int :0; unsigned char :0; };
struct BFu0c_BFu0i_BFu0i_BFu0i { unsigned char :0; unsigned int :0; unsigned int :0; unsigned int :0; };
struct BFu0c_BFu0i_BFu0i_BFu0ll { unsigned char :0; unsigned int :0; unsigned int :0; unsigned long long :0; };
struct BFu0c_BFu0i_BFu0i_BFu0s { unsigned char :0; unsigned int :0; unsigned int :0; unsigned short :0; };
struct BFu0c_BFu0i_BFu0ll { unsigned char :0; unsigned int :0; unsigned long long :0; };
struct BFu0c_BFu0i_BFu0ll_BFs0c { unsigned char :0; unsigned int :0; unsigned long long :0; signed char :0; };
struct BFu0c_BFu0i_BFu0ll_BFs0i { unsigned char :0; unsigned int :0; unsigned long long :0; signed int :0; };
struct BFu0c_BFu0i_BFu0ll_BFs0ll { unsigned char :0; unsigned int :0; unsigned long long :0; signed long long :0; };
struct BFu0c_BFu0i_BFu0ll_BFs0s { unsigned char :0; unsigned int :0; unsigned long long :0; signed short :0; };
struct BFu0c_BFu0i_BFu0ll_BFu0c { unsigned char :0; unsigned int :0; unsigned long long :0; unsigned char :0; };
struct BFu0c_BFu0i_BFu0ll_BFu0i { unsigned char :0; unsigned int :0; unsigned long long :0; unsigned int :0; };
struct BFu0c_BFu0i_BFu0ll_BFu0ll { unsigned char :0; unsigned int :0; unsigned long long :0; unsigned long long :0; };
struct BFu0c_BFu0i_BFu0ll_BFu0s { unsigned char :0; unsigned int :0; unsigned long long :0; unsigned short :0; };
struct BFu0c_BFu0i_BFu0s { unsigned char :0; unsigned int :0; unsigned short :0; };
struct BFu0c_BFu0i_BFu0s_BFs0c { unsigned char :0; unsigned int :0; unsigned short :0; signed char :0; };
struct BFu0c_BFu0i_BFu0s_BFs0i { unsigned char :0; unsigned int :0; unsigned short :0; signed int :0; };
struct BFu0c_BFu0i_BFu0s_BFs0ll { unsigned char :0; unsigned int :0; unsigned short :0; signed long long :0; };
struct BFu0c_BFu0i_BFu0s_BFs0s { unsigned char :0; unsigned int :0; unsigned short :0; signed short :0; };
struct BFu0c_BFu0i_BFu0s_BFu0c { unsigned char :0; unsigned int :0; unsigned short :0; unsigned char :0; };
struct BFu0c_BFu0i_BFu0s_BFu0i { unsigned char :0; unsigned int :0; unsigned short :0; unsigned int :0; };
struct BFu0c_BFu0i_BFu0s_BFu0ll { unsigned char :0; unsigned int :0; unsigned short :0; unsigned long long :0; };
struct BFu0c_BFu0i_BFu0s_BFu0s { unsigned char :0; unsigned int :0; unsigned short :0; unsigned short :0; };
struct BFu0c_BFu0i_BFu15i { unsigned char :0; unsigned int :0; unsigned int v1:15; };
struct BFu0c_BFu0i_BFu15ll { unsigned char :0; unsigned int :0; unsigned long long v1:15; };
struct BFu0c_BFu0i_BFu15s { unsigned char :0; unsigned int :0; unsigned short v1:15; };
struct BFu0c_BFu0i_BFu16i { unsigned char :0; unsigned int :0; unsigned int v1:16; };
struct BFu0c_BFu0i_BFu16ll { unsigned char :0; unsigned int :0; unsigned long long v1:16; };
struct BFu0c_BFu0i_BFu16s { unsigned char :0; unsigned int :0; unsigned short v1:16; };
struct BFu0c_BFu0i_BFu17i { unsigned char :0; unsigned int :0; unsigned int v1:17; };
struct BFu0c_BFu0i_BFu17ll { unsigned char :0; unsigned int :0; unsigned long long v1:17; };
struct BFu0c_BFu0i_BFu1c { unsigned char :0; unsigned int :0; unsigned char v1:1; };
struct BFu0c_BFu0i_BFu1i { unsigned char :0; unsigned int :0; unsigned int v1:1; };
struct BFu0c_BFu0i_BFu1ll { unsigned char :0; unsigned int :0; unsigned long long v1:1; };
struct BFu0c_BFu0i_BFu1s { unsigned char :0; unsigned int :0; unsigned short v1:1; };
struct BFu0c_BFu0i_BFu31i { unsigned char :0; unsigned int :0; unsigned int v1:31; };
struct BFu0c_BFu0i_BFu31ll { unsigned char :0; unsigned int :0; unsigned long long v1:31; };
struct BFu0c_BFu0i_BFu32i { unsigned char :0; unsigned int :0; unsigned int v1:32; };
struct BFu0c_BFu0i_BFu32ll { unsigned char :0; unsigned int :0; unsigned long long v1:32; };
struct BFu0c_BFu0i_BFu33 { unsigned char :0; unsigned int :0; unsigned long long v1:33; };
struct BFu0c_BFu0i_BFu7c { unsigned char :0; unsigned int :0; unsigned char v1:7; };
struct BFu0c_BFu0i_BFu7i { unsigned char :0; unsigned int :0; unsigned int v1:7; };
struct BFu0c_BFu0i_BFu7ll { unsigned char :0; unsigned int :0; unsigned long long v1:7; };
struct BFu0c_BFu0i_BFu7s { unsigned char :0; unsigned int :0; unsigned short v1:7; };
struct BFu0c_BFu0i_BFu8c { unsigned char :0; unsigned int :0; unsigned char v1:8; };
struct BFu0c_BFu0i_BFu8i { unsigned char :0; unsigned int :0; unsigned int v1:8; };
struct BFu0c_BFu0i_BFu8ll { unsigned char :0; unsigned int :0; unsigned long long v1:8; };
struct BFu0c_BFu0i_BFu8s { unsigned char :0; unsigned int :0; unsigned short v1:8; };
struct BFu0c_BFu0i_BFu9i { unsigned char :0; unsigned int :0; unsigned int v1:9; };
struct BFu0c_BFu0i_BFu9ll { unsigned char :0; unsigned int :0; unsigned long long v1:9; };
struct BFu0c_BFu0i_BFu9s { unsigned char :0; unsigned int :0; unsigned short v1:9; };
struct BFu0c_BFu0i_C { unsigned char :0; unsigned int :0; char v1; };
struct BFu0c_BFu0i_D { unsigned char :0; unsigned int :0; double v1; };
struct BFu0c_BFu0i_F { unsigned char :0; unsigned int :0; float v1; };
struct BFu0c_BFu0i_I { unsigned char :0; unsigned int :0; int v1; };
struct BFu0c_BFu0i_Ip { unsigned char :0; unsigned int :0; int * v1; };
struct BFu0c_BFu0i_L { unsigned char :0; unsigned int :0; long long v1; };
struct BFu0c_BFu0i_S { unsigned char :0; unsigned int :0; short v1; };
struct BFu0c_BFu0i_Uc { unsigned char :0; unsigned int :0; unsigned char v1; };
struct BFu0c_BFu0i_Ui { unsigned char :0; unsigned int :0; unsigned int v1; };
struct BFu0c_BFu0i_Ul { unsigned char :0; unsigned int :0; unsigned long long v1; };
struct BFu0c_BFu0i_Us { unsigned char :0; unsigned int :0; unsigned short v1; };
struct BFu0c_BFu0i_Vp { unsigned char :0; unsigned int :0; void * v1; };
struct BFu0c_BFu0ll { unsigned char :0; unsigned long long :0; };
struct BFu0c_BFu0ll_BFs0c { unsigned char :0; unsigned long long :0; signed char :0; };
struct BFu0c_BFu0ll_BFs0c_BFs0c { unsigned char :0; unsigned long long :0; signed char :0; signed char :0; };
struct BFu0c_BFu0ll_BFs0c_BFs0i { unsigned char :0; unsigned long long :0; signed char :0; signed int :0; };
struct BFu0c_BFu0ll_BFs0c_BFs0ll { unsigned char :0; unsigned long long :0; signed char :0; signed long long :0; };
struct BFu0c_BFu0ll_BFs0c_BFs0s { unsigned char :0; unsigned long long :0; signed char :0; signed short :0; };
struct BFu0c_BFu0ll_BFs0c_BFu0c { unsigned char :0; unsigned long long :0; signed char :0; unsigned char :0; };
struct BFu0c_BFu0ll_BFs0c_BFu0i { unsigned char :0; unsigned long long :0; signed char :0; unsigned int :0; };
struct BFu0c_BFu0ll_BFs0c_BFu0ll { unsigned char :0; unsigned long long :0; signed char :0; unsigned long long :0; };
struct BFu0c_BFu0ll_BFs0c_BFu0s { unsigned char :0; unsigned long long :0; signed char :0; unsigned short :0; };
struct BFu0c_BFu0ll_BFs0i { unsigned char :0; unsigned long long :0; signed int :0; };
struct BFu0c_BFu0ll_BFs0i_BFs0c { unsigned char :0; unsigned long long :0; signed int :0; signed char :0; };
struct BFu0c_BFu0ll_BFs0i_BFs0i { unsigned char :0; unsigned long long :0; signed int :0; signed int :0; };
struct BFu0c_BFu0ll_BFs0i_BFs0ll { unsigned char :0; unsigned long long :0; signed int :0; signed long long :0; };
struct BFu0c_BFu0ll_BFs0i_BFs0s { unsigned char :0; unsigned long long :0; signed int :0; signed short :0; };
struct BFu0c_BFu0ll_BFs0i_BFu0c { unsigned char :0; unsigned long long :0; signed int :0; unsigned char :0; };
struct BFu0c_BFu0ll_BFs0i_BFu0i { unsigned char :0; unsigned long long :0; signed int :0; unsigned int :0; };
struct BFu0c_BFu0ll_BFs0i_BFu0ll { unsigned char :0; unsigned long long :0; signed int :0; unsigned long long :0; };
struct BFu0c_BFu0ll_BFs0i_BFu0s { unsigned char :0; unsigned long long :0; signed int :0; unsigned short :0; };
struct BFu0c_BFu0ll_BFs0ll { unsigned char :0; unsigned long long :0; signed long long :0; };
struct BFu0c_BFu0ll_BFs0ll_BFs0c { unsigned char :0; unsigned long long :0; signed long long :0; signed char :0; };
struct BFu0c_BFu0ll_BFs0ll_BFs0i { unsigned char :0; unsigned long long :0; signed long long :0; signed int :0; };
struct BFu0c_BFu0ll_BFs0ll_BFs0ll { unsigned char :0; unsigned long long :0; signed long long :0; signed long long :0; };
struct BFu0c_BFu0ll_BFs0ll_BFs0s { unsigned char :0; unsigned long long :0; signed long long :0; signed short :0; };
struct BFu0c_BFu0ll_BFs0ll_BFu0c { unsigned char :0; unsigned long long :0; signed long long :0; unsigned char :0; };
struct BFu0c_BFu0ll_BFs0ll_BFu0i { unsigned char :0; unsigned long long :0; signed long long :0; unsigned int :0; };
struct BFu0c_BFu0ll_BFs0ll_BFu0ll { unsigned char :0; unsigned long long :0; signed long long :0; unsigned long long :0; };
struct BFu0c_BFu0ll_BFs0ll_BFu0s { unsigned char :0; unsigned long long :0; signed long long :0; unsigned short :0; };
struct BFu0c_BFu0ll_BFs0s { unsigned char :0; unsigned long long :0; signed short :0; };
struct BFu0c_BFu0ll_BFs0s_BFs0c { unsigned char :0; unsigned long long :0; signed short :0; signed char :0; };
struct BFu0c_BFu0ll_BFs0s_BFs0i { unsigned char :0; unsigned long long :0; signed short :0; signed int :0; };
struct BFu0c_BFu0ll_BFs0s_BFs0ll { unsigned char :0; unsigned long long :0; signed short :0; signed long long :0; };
struct BFu0c_BFu0ll_BFs0s_BFs0s { unsigned char :0; unsigned long long :0; signed short :0; signed short :0; };
struct BFu0c_BFu0ll_BFs0s_BFu0c { unsigned char :0; unsigned long long :0; signed short :0; unsigned char :0; };
struct BFu0c_BFu0ll_BFs0s_BFu0i { unsigned char :0; unsigned long long :0; signed short :0; unsigned int :0; };
struct BFu0c_BFu0ll_BFs0s_BFu0ll { unsigned char :0; unsigned long long :0; signed short :0; unsigned long long :0; };
struct BFu0c_BFu0ll_BFs0s_BFu0s { unsigned char :0; unsigned long long :0; signed short :0; unsigned short :0; };
struct BFu0c_BFu0ll_BFu0c { unsigned char :0; unsigned long long :0; unsigned char :0; };
struct BFu0c_BFu0ll_BFu0c_BFs0c { unsigned char :0; unsigned long long :0; unsigned char :0; signed char :0; };
struct BFu0c_BFu0ll_BFu0c_BFs0i { unsigned char :0; unsigned long long :0; unsigned char :0; signed int :0; };
struct BFu0c_BFu0ll_BFu0c_BFs0ll { unsigned char :0; unsigned long long :0; unsigned char :0; signed long long :0; };
struct BFu0c_BFu0ll_BFu0c_BFs0s { unsigned char :0; unsigned long long :0; unsigned char :0; signed short :0; };
struct BFu0c_BFu0ll_BFu0c_BFu0c { unsigned char :0; unsigned long long :0; unsigned char :0; unsigned char :0; };
struct BFu0c_BFu0ll_BFu0c_BFu0i { unsigned char :0; unsigned long long :0; unsigned char :0; unsigned int :0; };
struct BFu0c_BFu0ll_BFu0c_BFu0ll { unsigned char :0; unsigned long long :0; unsigned char :0; unsigned long long :0; };
struct BFu0c_BFu0ll_BFu0c_BFu0s { unsigned char :0; unsigned long long :0; unsigned char :0; unsigned short :0; };
struct BFu0c_BFu0ll_BFu0i { unsigned char :0; unsigned long long :0; unsigned int :0; };
struct BFu0c_BFu0ll_BFu0i_BFs0c { unsigned char :0; unsigned long long :0; unsigned int :0; signed char :0; };
struct BFu0c_BFu0ll_BFu0i_BFs0i { unsigned char :0; unsigned long long :0; unsigned int :0; signed int :0; };
struct BFu0c_BFu0ll_BFu0i_BFs0ll { unsigned char :0; unsigned long long :0; unsigned int :0; signed long long :0; };
struct BFu0c_BFu0ll_BFu0i_BFs0s { unsigned char :0; unsigned long long :0; unsigned int :0; signed short :0; };
struct BFu0c_BFu0ll_BFu0i_BFu0c { unsigned char :0; unsigned long long :0; unsigned int :0; unsigned char :0; };
struct BFu0c_BFu0ll_BFu0i_BFu0i { unsigned char :0; unsigned long long :0; unsigned int :0; unsigned int :0; };
struct BFu0c_BFu0ll_BFu0i_BFu0ll { unsigned char :0; unsigned long long :0; unsigned int :0; unsigned long long :0; };
struct BFu0c_BFu0ll_BFu0i_BFu0s { unsigned char :0; unsigned long long :0; unsigned int :0; unsigned short :0; };
struct BFu0c_BFu0ll_BFu0ll { unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct BFu0c_BFu0ll_BFu0ll_BFs0c { unsigned char :0; unsigned long long :0; unsigned long long :0; signed char :0; };
struct BFu0c_BFu0ll_BFu0ll_BFs0i { unsigned char :0; unsigned long long :0; unsigned long long :0; signed int :0; };
struct BFu0c_BFu0ll_BFu0ll_BFs0ll { unsigned char :0; unsigned long long :0; unsigned long long :0; signed long long :0; };
struct BFu0c_BFu0ll_BFu0ll_BFs0s { unsigned char :0; unsigned long long :0; unsigned long long :0; signed short :0; };
struct BFu0c_BFu0ll_BFu0ll_BFu0c { unsigned char :0; unsigned long long :0; unsigned long long :0; unsigned char :0; };
struct BFu0c_BFu0ll_BFu0ll_BFu0i { unsigned char :0; unsigned long long :0; unsigned long long :0; unsigned int :0; };
struct BFu0c_BFu0ll_BFu0ll_BFu0ll { unsigned char :0; unsigned long long :0; unsigned long long :0; unsigned long long :0; };
struct BFu0c_BFu0ll_BFu0ll_BFu0s { unsigned char :0; unsigned long long :0; unsigned long long :0; unsigned short :0; };
struct BFu0c_BFu0ll_BFu0s { unsigned char :0; unsigned long long :0; unsigned short :0; };
struct BFu0c_BFu0ll_BFu0s_BFs0c { unsigned char :0; unsigned long long :0; unsigned short :0; signed char :0; };
struct BFu0c_BFu0ll_BFu0s_BFs0i { unsigned char :0; unsigned long long :0; unsigned short :0; signed int :0; };
struct BFu0c_BFu0ll_BFu0s_BFs0ll { unsigned char :0; unsigned long long :0; unsigned short :0; signed long long :0; };
struct BFu0c_BFu0ll_BFu0s_BFs0s { unsigned char :0; unsigned long long :0; unsigned short :0; signed short :0; };
struct BFu0c_BFu0ll_BFu0s_BFu0c { unsigned char :0; unsigned long long :0; unsigned short :0; unsigned char :0; };
struct BFu0c_BFu0ll_BFu0s_BFu0i { unsigned char :0; unsigned long long :0; unsigned short :0; unsigned int :0; };
struct BFu0c_BFu0ll_BFu0s_BFu0ll { unsigned char :0; unsigned long long :0; unsigned short :0; unsigned long long :0; };
struct BFu0c_BFu0ll_BFu0s_BFu0s { unsigned char :0; unsigned long long :0; unsigned short :0; unsigned short :0; };
struct BFu0c_BFu0ll_BFu15i { unsigned char :0; unsigned long long :0; unsigned int v1:15; };
struct BFu0c_BFu0ll_BFu15ll { unsigned char :0; unsigned long long :0; unsigned long long v1:15; };
struct BFu0c_BFu0ll_BFu15s { unsigned char :0; unsigned long long :0; unsigned short v1:15; };
struct BFu0c_BFu0ll_BFu16i { unsigned char :0; unsigned long long :0; unsigned int v1:16; };
struct BFu0c_BFu0ll_BFu16ll { unsigned char :0; unsigned long long :0; unsigned long long v1:16; };
struct BFu0c_BFu0ll_BFu16s { unsigned char :0; unsigned long long :0; unsigned short v1:16; };
struct BFu0c_BFu0ll_BFu17i { unsigned char :0; unsigned long long :0; unsigned int v1:17; };
struct BFu0c_BFu0ll_BFu17ll { unsigned char :0; unsigned long long :0; unsigned long long v1:17; };
struct BFu0c_BFu0ll_BFu1c { unsigned char :0; unsigned long long :0; unsigned char v1:1; };
struct BFu0c_BFu0ll_BFu1i { unsigned char :0; unsigned long long :0; unsigned int v1:1; };
struct BFu0c_BFu0ll_BFu1ll { unsigned char :0; unsigned long long :0; unsigned long long v1:1; };
struct BFu0c_BFu0ll_BFu1s { unsigned char :0; unsigned long long :0; unsigned short v1:1; };
struct BFu0c_BFu0ll_BFu31i { unsigned char :0; unsigned long long :0; unsigned int v1:31; };
struct BFu0c_BFu0ll_BFu31ll { unsigned char :0; unsigned long long :0; unsigned long long v1:31; };
struct BFu0c_BFu0ll_BFu32i { unsigned char :0; unsigned long long :0; unsigned int v1:32; };
struct BFu0c_BFu0ll_BFu32ll { unsigned char :0; unsigned long long :0; unsigned long long v1:32; };
struct BFu0c_BFu0ll_BFu33 { unsigned char :0; unsigned long long :0; unsigned long long v1:33; };
struct BFu0c_BFu0ll_BFu7c { unsigned char :0; unsigned long long :0; unsigned char v1:7; };
struct BFu0c_BFu0ll_BFu7i { unsigned char :0; unsigned long long :0; unsigned int v1:7; };
struct BFu0c_BFu0ll_BFu7ll { unsigned char :0; unsigned long long :0; unsigned long long v1:7; };
struct BFu0c_BFu0ll_BFu7s { unsigned char :0; unsigned long long :0; unsigned short v1:7; };
struct BFu0c_BFu0ll_BFu8c { unsigned char :0; unsigned long long :0; unsigned char v1:8; };
struct BFu0c_BFu0ll_BFu8i { unsigned char :0; unsigned long long :0; unsigned int v1:8; };
struct BFu0c_BFu0ll_BFu8ll { unsigned char :0; unsigned long long :0; unsigned long long v1:8; };
struct BFu0c_BFu0ll_BFu8s { unsigned char :0; unsigned long long :0; unsigned short v1:8; };
struct BFu0c_BFu0ll_BFu9i { unsigned char :0; unsigned long long :0; unsigned int v1:9; };
struct BFu0c_BFu0ll_BFu9ll { unsigned char :0; unsigned long long :0; unsigned long long v1:9; };
struct BFu0c_BFu0ll_BFu9s { unsigned char :0; unsigned long long :0; unsigned short v1:9; };
struct BFu0c_BFu0ll_C { unsigned char :0; unsigned long long :0; char v1; };
struct BFu0c_BFu0ll_D { unsigned char :0; unsigned long long :0; double v1; };
struct BFu0c_BFu0ll_F { unsigned char :0; unsigned long long :0; float v1; };
struct BFu0c_BFu0ll_I { unsigned char :0; unsigned long long :0; int v1; };
struct BFu0c_BFu0ll_Ip { unsigned char :0; unsigned long long :0; int * v1; };
struct BFu0c_BFu0ll_L { unsigned char :0; unsigned long long :0; long long v1; };
struct BFu0c_BFu0ll_S { unsigned char :0; unsigned long long :0; short v1; };
struct BFu0c_BFu0ll_Uc { unsigned char :0; unsigned long long :0; unsigned char v1; };
struct BFu0c_BFu0ll_Ui { unsigned char :0; unsigned long long :0; unsigned int v1; };
struct BFu0c_BFu0ll_Ul { unsigned char :0; unsigned long long :0; unsigned long long v1; };
struct BFu0c_BFu0ll_Us { unsigned char :0; unsigned long long :0; unsigned short v1; };
struct BFu0c_BFu0ll_Vp { unsigned char :0; unsigned long long :0; void * v1; };
struct BFu0c_BFu0s { unsigned char :0; unsigned short :0; };
struct BFu0c_BFu0s_BFs0c { unsigned char :0; unsigned short :0; signed char :0; };
struct BFu0c_BFu0s_BFs0c_BFs0c { unsigned char :0; unsigned short :0; signed char :0; signed char :0; };
struct BFu0c_BFu0s_BFs0c_BFs0i { unsigned char :0; unsigned short :0; signed char :0; signed int :0; };
struct BFu0c_BFu0s_BFs0c_BFs0ll { unsigned char :0; unsigned short :0; signed char :0; signed long long :0; };
struct BFu0c_BFu0s_BFs0c_BFs0s { unsigned char :0; unsigned short :0; signed char :0; signed short :0; };
struct BFu0c_BFu0s_BFs0c_BFu0c { unsigned char :0; unsigned short :0; signed char :0; unsigned char :0; };
struct BFu0c_BFu0s_BFs0c_BFu0i { unsigned char :0; unsigned short :0; signed char :0; unsigned int :0; };
struct BFu0c_BFu0s_BFs0c_BFu0ll { unsigned char :0; unsigned short :0; signed char :0; unsigned long long :0; };
struct BFu0c_BFu0s_BFs0c_BFu0s { unsigned char :0; unsigned short :0; signed char :0; unsigned short :0; };
struct BFu0c_BFu0s_BFs0i { unsigned char :0; unsigned short :0; signed int :0; };
struct BFu0c_BFu0s_BFs0i_BFs0c { unsigned char :0; unsigned short :0; signed int :0; signed char :0; };
struct BFu0c_BFu0s_BFs0i_BFs0i { unsigned char :0; unsigned short :0; signed int :0; signed int :0; };
struct BFu0c_BFu0s_BFs0i_BFs0ll { unsigned char :0; unsigned short :0; signed int :0; signed long long :0; };
struct BFu0c_BFu0s_BFs0i_BFs0s { unsigned char :0; unsigned short :0; signed int :0; signed short :0; };
struct BFu0c_BFu0s_BFs0i_BFu0c { unsigned char :0; unsigned short :0; signed int :0; unsigned char :0; };
struct BFu0c_BFu0s_BFs0i_BFu0i { unsigned char :0; unsigned short :0; signed int :0; unsigned int :0; };
struct BFu0c_BFu0s_BFs0i_BFu0ll { unsigned char :0; unsigned short :0; signed int :0; unsigned long long :0; };
struct BFu0c_BFu0s_BFs0i_BFu0s { unsigned char :0; unsigned short :0; signed int :0; unsigned short :0; };
struct BFu0c_BFu0s_BFs0ll { unsigned char :0; unsigned short :0; signed long long :0; };
struct BFu0c_BFu0s_BFs0ll_BFs0c { unsigned char :0; unsigned short :0; signed long long :0; signed char :0; };
struct BFu0c_BFu0s_BFs0ll_BFs0i { unsigned char :0; unsigned short :0; signed long long :0; signed int :0; };
struct BFu0c_BFu0s_BFs0ll_BFs0ll { unsigned char :0; unsigned short :0; signed long long :0; signed long long :0; };
struct BFu0c_BFu0s_BFs0ll_BFs0s { unsigned char :0; unsigned short :0; signed long long :0; signed short :0; };
struct BFu0c_BFu0s_BFs0ll_BFu0c { unsigned char :0; unsigned short :0; signed long long :0; unsigned char :0; };
struct BFu0c_BFu0s_BFs0ll_BFu0i { unsigned char :0; unsigned short :0; signed long long :0; unsigned int :0; };
struct BFu0c_BFu0s_BFs0ll_BFu0ll { unsigned char :0; unsigned short :0; signed long long :0; unsigned long long :0; };
struct BFu0c_BFu0s_BFs0ll_BFu0s { unsigned char :0; unsigned short :0; signed long long :0; unsigned short :0; };
struct BFu0c_BFu0s_BFs0s { unsigned char :0; unsigned short :0; signed short :0; };
struct BFu0c_BFu0s_BFs0s_BFs0c { unsigned char :0; unsigned short :0; signed short :0; signed char :0; };
struct BFu0c_BFu0s_BFs0s_BFs0i { unsigned char :0; unsigned short :0; signed short :0; signed int :0; };
struct BFu0c_BFu0s_BFs0s_BFs0ll { unsigned char :0; unsigned short :0; signed short :0; signed long long :0; };
struct BFu0c_BFu0s_BFs0s_BFs0s { unsigned char :0; unsigned short :0; signed short :0; signed short :0; };
struct BFu0c_BFu0s_BFs0s_BFu0c { unsigned char :0; unsigned short :0; signed short :0; unsigned char :0; };
struct BFu0c_BFu0s_BFs0s_BFu0i { unsigned char :0; unsigned short :0; signed short :0; unsigned int :0; };
struct BFu0c_BFu0s_BFs0s_BFu0ll { unsigned char :0; unsigned short :0; signed short :0; unsigned long long :0; };
struct BFu0c_BFu0s_BFs0s_BFu0s { unsigned char :0; unsigned short :0; signed short :0; unsigned short :0; };
struct BFu0c_BFu0s_BFu0c { unsigned char :0; unsigned short :0; unsigned char :0; };
struct BFu0c_BFu0s_BFu0c_BFs0c { unsigned char :0; unsigned short :0; unsigned char :0; signed char :0; };
struct BFu0c_BFu0s_BFu0c_BFs0i { unsigned char :0; unsigned short :0; unsigned char :0; signed int :0; };
struct BFu0c_BFu0s_BFu0c_BFs0ll { unsigned char :0; unsigned short :0; unsigned char :0; signed long long :0; };
struct BFu0c_BFu0s_BFu0c_BFs0s { unsigned char :0; unsigned short :0; unsigned char :0; signed short :0; };
struct BFu0c_BFu0s_BFu0c_BFu0c { unsigned char :0; unsigned short :0; unsigned char :0; unsigned char :0; };
struct BFu0c_BFu0s_BFu0c_BFu0i { unsigned char :0; unsigned short :0; unsigned char :0; unsigned int :0; };
struct BFu0c_BFu0s_BFu0c_BFu0ll { unsigned char :0; unsigned short :0; unsigned char :0; unsigned long long :0; };
struct BFu0c_BFu0s_BFu0c_BFu0s { unsigned char :0; unsigned short :0; unsigned char :0; unsigned short :0; };
struct BFu0c_BFu0s_BFu0i { unsigned char :0; unsigned short :0; unsigned int :0; };
struct BFu0c_BFu0s_BFu0i_BFs0c { unsigned char :0; unsigned short :0; unsigned int :0; signed char :0; };
struct BFu0c_BFu0s_BFu0i_BFs0i { unsigned char :0; unsigned short :0; unsigned int :0; signed int :0; };
struct BFu0c_BFu0s_BFu0i_BFs0ll { unsigned char :0; unsigned short :0; unsigned int :0; signed long long :0; };
struct BFu0c_BFu0s_BFu0i_BFs0s { unsigned char :0; unsigned short :0; unsigned int :0; signed short :0; };
struct BFu0c_BFu0s_BFu0i_BFu0c { unsigned char :0; unsigned short :0; unsigned int :0; unsigned char :0; };
struct BFu0c_BFu0s_BFu0i_BFu0i { unsigned char :0; unsigned short :0; unsigned int :0; unsigned int :0; };
struct BFu0c_BFu0s_BFu0i_BFu0ll { unsigned char :0; unsigned short :0; unsigned int :0; unsigned long long :0; };
struct BFu0c_BFu0s_BFu0i_BFu0s { unsigned char :0; unsigned short :0; unsigned int :0; unsigned short :0; };
struct BFu0c_BFu0s_BFu0ll { unsigned char :0; unsigned short :0; unsigned long long :0; };
struct BFu0c_BFu0s_BFu0ll_BFs0c { unsigned char :0; unsigned short :0; unsigned long long :0; signed char :0; };
struct BFu0c_BFu0s_BFu0ll_BFs0i { unsigned char :0; unsigned short :0; unsigned long long :0; signed int :0; };
struct BFu0c_BFu0s_BFu0ll_BFs0ll { unsigned char :0; unsigned short :0; unsigned long long :0; signed long long :0; };
struct BFu0c_BFu0s_BFu0ll_BFs0s { unsigned char :0; unsigned short :0; unsigned long long :0; signed short :0; };
struct BFu0c_BFu0s_BFu0ll_BFu0c { unsigned char :0; unsigned short :0; unsigned long long :0; unsigned char :0; };
struct BFu0c_BFu0s_BFu0ll_BFu0i { unsigned char :0; unsigned short :0; unsigned long long :0; unsigned int :0; };
struct BFu0c_BFu0s_BFu0ll_BFu0ll { unsigned char :0; unsigned short :0; unsigned long long :0; unsigned long long :0; };
struct BFu0c_BFu0s_BFu0ll_BFu0s { unsigned char :0; unsigned short :0; unsigned long long :0; unsigned short :0; };
struct BFu0c_BFu0s_BFu0s { unsigned char :0; unsigned short :0; unsigned short :0; };
struct BFu0c_BFu0s_BFu0s_BFs0c { unsigned char :0; unsigned short :0; unsigned short :0; signed char :0; };
struct BFu0c_BFu0s_BFu0s_BFs0i { unsigned char :0; unsigned short :0; unsigned short :0; signed int :0; };
struct BFu0c_BFu0s_BFu0s_BFs0ll { unsigned char :0; unsigned short :0; unsigned short :0; signed long long :0; };
struct BFu0c_BFu0s_BFu0s_BFs0s { unsigned char :0; unsigned short :0; unsigned short :0; signed short :0; };
struct BFu0c_BFu0s_BFu0s_BFu0c { unsigned char :0; unsigned short :0; unsigned short :0; unsigned char :0; };
struct BFu0c_BFu0s_BFu0s_BFu0i { unsigned char :0; unsigned short :0; unsigned short :0; unsigned int :0; };
struct BFu0c_BFu0s_BFu0s_BFu0ll { unsigned char :0; unsigned short :0; unsigned short :0; unsigned long long :0; };
struct BFu0c_BFu0s_BFu0s_BFu0s { unsigned char :0; unsigned short :0; unsigned short :0; unsigned short :0; };
struct BFu0c_BFu0s_BFu15i { unsigned char :0; unsigned short :0; unsigned int v1:15; };
struct BFu0c_BFu0s_BFu15ll { unsigned char :0; unsigned short :0; unsigned long long v1:15; };
struct BFu0c_BFu0s_BFu15s { unsigned char :0; unsigned short :0; unsigned short v1:15; };
struct BFu0c_BFu0s_BFu16i { unsigned char :0; unsigned short :0; unsigned int v1:16; };
struct BFu0c_BFu0s_BFu16ll { unsigned char :0; unsigned short :0; unsigned long long v1:16; };
struct BFu0c_BFu0s_BFu16s { unsigned char :0; unsigned short :0; unsigned short v1:16; };
struct BFu0c_BFu0s_BFu17i { unsigned char :0; unsigned short :0; unsigned int v1:17; };
struct BFu0c_BFu0s_BFu17ll { unsigned char :0; unsigned short :0; unsigned long long v1:17; };
struct BFu0c_BFu0s_BFu1c { unsigned char :0; unsigned short :0; unsigned char v1:1; };
struct BFu0c_BFu0s_BFu1i { unsigned char :0; unsigned short :0; unsigned int v1:1; };
struct BFu0c_BFu0s_BFu1ll { unsigned char :0; unsigned short :0; unsigned long long v1:1; };
struct BFu0c_BFu0s_BFu1s { unsigned char :0; unsigned short :0; unsigned short v1:1; };
struct BFu0c_BFu0s_BFu31i { unsigned char :0; unsigned short :0; unsigned int v1:31; };
struct BFu0c_BFu0s_BFu31ll { unsigned char :0; unsigned short :0; unsigned long long v1:31; };
struct BFu0c_BFu0s_BFu32i { unsigned char :0; unsigned short :0; unsigned int v1:32; };
struct BFu0c_BFu0s_BFu32ll { unsigned char :0; unsigned short :0; unsigned long long v1:32; };
struct BFu0c_BFu0s_BFu33 { unsigned char :0; unsigned short :0; unsigned long long v1:33; };
struct BFu0c_BFu0s_BFu7c { unsigned char :0; unsigned short :0; unsigned char v1:7; };
struct BFu0c_BFu0s_BFu7i { unsigned char :0; unsigned short :0; unsigned int v1:7; };
struct BFu0c_BFu0s_BFu7ll { unsigned char :0; unsigned short :0; unsigned long long v1:7; };
struct BFu0c_BFu0s_BFu7s { unsigned char :0; unsigned short :0; unsigned short v1:7; };
struct BFu0c_BFu0s_BFu8c { unsigned char :0; unsigned short :0; unsigned char v1:8; };
struct BFu0c_BFu0s_BFu8i { unsigned char :0; unsigned short :0; unsigned int v1:8; };
struct BFu0c_BFu0s_BFu8ll { unsigned char :0; unsigned short :0; unsigned long long v1:8; };
struct BFu0c_BFu0s_BFu8s { unsigned char :0; unsigned short :0; unsigned short v1:8; };
struct BFu0c_BFu0s_BFu9i { unsigned char :0; unsigned short :0; unsigned int v1:9; };
struct BFu0c_BFu0s_BFu9ll { unsigned char :0; unsigned short :0; unsigned long long v1:9; };
struct BFu0c_BFu0s_BFu9s { unsigned char :0; unsigned short :0; unsigned short v1:9; };
struct BFu0c_BFu0s_C { unsigned char :0; unsigned short :0; char v1; };
struct BFu0c_BFu0s_D { unsigned char :0; unsigned short :0; double v1; };
struct BFu0c_BFu0s_F { unsigned char :0; unsigned short :0; float v1; };
struct BFu0c_BFu0s_I { unsigned char :0; unsigned short :0; int v1; };
struct BFu0c_BFu0s_Ip { unsigned char :0; unsigned short :0; int * v1; };
struct BFu0c_BFu0s_L { unsigned char :0; unsigned short :0; long long v1; };
struct BFu0c_BFu0s_S { unsigned char :0; unsigned short :0; short v1; };
struct BFu0c_BFu0s_Uc { unsigned char :0; unsigned short :0; unsigned char v1; };
struct BFu0c_BFu0s_Ui { unsigned char :0; unsigned short :0; unsigned int v1; };
struct BFu0c_BFu0s_Ul { unsigned char :0; unsigned short :0; unsigned long long v1; };
struct BFu0c_BFu0s_Us { unsigned char :0; unsigned short :0; unsigned short v1; };
struct BFu0c_BFu0s_Vp { unsigned char :0; unsigned short :0; void * v1; };
struct BFu0c_BFu15i { unsigned char :0; unsigned int v1:15; };
struct BFu0c_BFu15i_BFu0c { unsigned char :0; unsigned int v1:15; unsigned char :0; };
struct BFu0c_BFu15i_BFu0i { unsigned char :0; unsigned int v1:15; unsigned int :0; };
struct BFu0c_BFu15i_BFu0ll { unsigned char :0; unsigned int v1:15; unsigned long long :0; };
struct BFu0c_BFu15i_BFu0s { unsigned char :0; unsigned int v1:15; unsigned short :0; };
struct BFu0c_BFu15i_BFu15i { unsigned char :0; unsigned int v1:15; unsigned int v2:15; };
struct BFu0c_BFu15i_BFu15ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:15; };
struct BFu0c_BFu15i_BFu15s { unsigned char :0; unsigned int v1:15; unsigned short v2:15; };
struct BFu0c_BFu15i_BFu16i { unsigned char :0; unsigned int v1:15; unsigned int v2:16; };
struct BFu0c_BFu15i_BFu16ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:16; };
struct BFu0c_BFu15i_BFu16s { unsigned char :0; unsigned int v1:15; unsigned short v2:16; };
struct BFu0c_BFu15i_BFu17i { unsigned char :0; unsigned int v1:15; unsigned int v2:17; };
struct BFu0c_BFu15i_BFu17ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:17; };
struct BFu0c_BFu15i_BFu1c { unsigned char :0; unsigned int v1:15; unsigned char v2:1; };
struct BFu0c_BFu15i_BFu1i { unsigned char :0; unsigned int v1:15; unsigned int v2:1; };
struct BFu0c_BFu15i_BFu1ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:1; };
struct BFu0c_BFu15i_BFu1s { unsigned char :0; unsigned int v1:15; unsigned short v2:1; };
struct BFu0c_BFu15i_BFu31i { unsigned char :0; unsigned int v1:15; unsigned int v2:31; };
struct BFu0c_BFu15i_BFu31ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:31; };
struct BFu0c_BFu15i_BFu32i { unsigned char :0; unsigned int v1:15; unsigned int v2:32; };
struct BFu0c_BFu15i_BFu32ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:32; };
struct BFu0c_BFu15i_BFu33 { unsigned char :0; unsigned int v1:15; unsigned long long v2:33; };
struct BFu0c_BFu15i_BFu7c { unsigned char :0; unsigned int v1:15; unsigned char v2:7; };
struct BFu0c_BFu15i_BFu7i { unsigned char :0; unsigned int v1:15; unsigned int v2:7; };
struct BFu0c_BFu15i_BFu7ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:7; };
struct BFu0c_BFu15i_BFu7s { unsigned char :0; unsigned int v1:15; unsigned short v2:7; };
struct BFu0c_BFu15i_BFu8c { unsigned char :0; unsigned int v1:15; unsigned char v2:8; };
struct BFu0c_BFu15i_BFu8i { unsigned char :0; unsigned int v1:15; unsigned int v2:8; };
struct BFu0c_BFu15i_BFu8ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:8; };
struct BFu0c_BFu15i_BFu8s { unsigned char :0; unsigned int v1:15; unsigned short v2:8; };
struct BFu0c_BFu15i_BFu9i { unsigned char :0; unsigned int v1:15; unsigned int v2:9; };
struct BFu0c_BFu15i_BFu9ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:9; };
struct BFu0c_BFu15i_BFu9s { unsigned char :0; unsigned int v1:15; unsigned short v2:9; };
struct BFu0c_BFu15i_C { unsigned char :0; unsigned int v1:15; char v2; };
struct BFu0c_BFu15i_D { unsigned char :0; unsigned int v1:15; double v2; };
struct BFu0c_BFu15i_F { unsigned char :0; unsigned int v1:15; float v2; };
struct BFu0c_BFu15i_I { unsigned char :0; unsigned int v1:15; int v2; };
struct BFu0c_BFu15i_Ip { unsigned char :0; unsigned int v1:15; int * v2; };
struct BFu0c_BFu15i_L { unsigned char :0; unsigned int v1:15; long long v2; };
struct BFu0c_BFu15i_S { unsigned char :0; unsigned int v1:15; short v2; };
struct BFu0c_BFu15i_Uc { unsigned char :0; unsigned int v1:15; unsigned char v2; };
struct BFu0c_BFu15i_Ui { unsigned char :0; unsigned int v1:15; unsigned int v2; };
struct BFu0c_BFu15i_Ul { unsigned char :0; unsigned int v1:15; unsigned long long v2; };
struct BFu0c_BFu15i_Us { unsigned char :0; unsigned int v1:15; unsigned short v2; };
struct BFu0c_BFu15i_Vp { unsigned char :0; unsigned int v1:15; void * v2; };
struct BFu0c_BFu15ll { unsigned char :0; unsigned long long v1:15; };
struct BFu0c_BFu15ll_BFu0c { unsigned char :0; unsigned long long v1:15; unsigned char :0; };
struct BFu0c_BFu15ll_BFu0i { unsigned char :0; unsigned long long v1:15; unsigned int :0; };
struct BFu0c_BFu15ll_BFu0ll { unsigned char :0; unsigned long long v1:15; unsigned long long :0; };
struct BFu0c_BFu15ll_BFu0s { unsigned char :0; unsigned long long v1:15; unsigned short :0; };
struct BFu0c_BFu15ll_BFu15i { unsigned char :0; unsigned long long v1:15; unsigned int v2:15; };
struct BFu0c_BFu15ll_BFu15ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:15; };
struct BFu0c_BFu15ll_BFu15s { unsigned char :0; unsigned long long v1:15; unsigned short v2:15; };
struct BFu0c_BFu15ll_BFu16i { unsigned char :0; unsigned long long v1:15; unsigned int v2:16; };
struct BFu0c_BFu15ll_BFu16ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:16; };
struct BFu0c_BFu15ll_BFu16s { unsigned char :0; unsigned long long v1:15; unsigned short v2:16; };
struct BFu0c_BFu15ll_BFu17i { unsigned char :0; unsigned long long v1:15; unsigned int v2:17; };
struct BFu0c_BFu15ll_BFu17ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:17; };
struct BFu0c_BFu15ll_BFu1c { unsigned char :0; unsigned long long v1:15; unsigned char v2:1; };
struct BFu0c_BFu15ll_BFu1i { unsigned char :0; unsigned long long v1:15; unsigned int v2:1; };
struct BFu0c_BFu15ll_BFu1ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:1; };
struct BFu0c_BFu15ll_BFu1s { unsigned char :0; unsigned long long v1:15; unsigned short v2:1; };
struct BFu0c_BFu15ll_BFu31i { unsigned char :0; unsigned long long v1:15; unsigned int v2:31; };
struct BFu0c_BFu15ll_BFu31ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:31; };
struct BFu0c_BFu15ll_BFu32i { unsigned char :0; unsigned long long v1:15; unsigned int v2:32; };
struct BFu0c_BFu15ll_BFu32ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:32; };
struct BFu0c_BFu15ll_BFu33 { unsigned char :0; unsigned long long v1:15; unsigned long long v2:33; };
struct BFu0c_BFu15ll_BFu7c { unsigned char :0; unsigned long long v1:15; unsigned char v2:7; };
struct BFu0c_BFu15ll_BFu7i { unsigned char :0; unsigned long long v1:15; unsigned int v2:7; };
struct BFu0c_BFu15ll_BFu7ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:7; };
struct BFu0c_BFu15ll_BFu7s { unsigned char :0; unsigned long long v1:15; unsigned short v2:7; };
struct BFu0c_BFu15ll_BFu8c { unsigned char :0; unsigned long long v1:15; unsigned char v2:8; };
struct BFu0c_BFu15ll_BFu8i { unsigned char :0; unsigned long long v1:15; unsigned int v2:8; };
struct BFu0c_BFu15ll_BFu8ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:8; };
struct BFu0c_BFu15ll_BFu8s { unsigned char :0; unsigned long long v1:15; unsigned short v2:8; };
struct BFu0c_BFu15ll_BFu9i { unsigned char :0; unsigned long long v1:15; unsigned int v2:9; };
struct BFu0c_BFu15ll_BFu9ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:9; };
struct BFu0c_BFu15ll_BFu9s { unsigned char :0; unsigned long long v1:15; unsigned short v2:9; };
struct BFu0c_BFu15ll_C { unsigned char :0; unsigned long long v1:15; char v2; };
struct BFu0c_BFu15ll_D { unsigned char :0; unsigned long long v1:15; double v2; };
struct BFu0c_BFu15ll_F { unsigned char :0; unsigned long long v1:15; float v2; };
struct BFu0c_BFu15ll_I { unsigned char :0; unsigned long long v1:15; int v2; };
struct BFu0c_BFu15ll_Ip { unsigned char :0; unsigned long long v1:15; int * v2; };
struct BFu0c_BFu15ll_L { unsigned char :0; unsigned long long v1:15; long long v2; };
struct BFu0c_BFu15ll_S { unsigned char :0; unsigned long long v1:15; short v2; };
struct BFu0c_BFu15ll_Uc { unsigned char :0; unsigned long long v1:15; unsigned char v2; };
struct BFu0c_BFu15ll_Ui { unsigned char :0; unsigned long long v1:15; unsigned int v2; };
struct BFu0c_BFu15ll_Ul { unsigned char :0; unsigned long long v1:15; unsigned long long v2; };
struct BFu0c_BFu15ll_Us { unsigned char :0; unsigned long long v1:15; unsigned short v2; };
struct BFu0c_BFu15ll_Vp { unsigned char :0; unsigned long long v1:15; void * v2; };
struct BFu0c_BFu15s { unsigned char :0; unsigned short v1:15; };
struct BFu0c_BFu15s_BFu0c { unsigned char :0; unsigned short v1:15; unsigned char :0; };
struct BFu0c_BFu15s_BFu0i { unsigned char :0; unsigned short v1:15; unsigned int :0; };
struct BFu0c_BFu15s_BFu0ll { unsigned char :0; unsigned short v1:15; unsigned long long :0; };
struct BFu0c_BFu15s_BFu0s { unsigned char :0; unsigned short v1:15; unsigned short :0; };
struct BFu0c_BFu15s_BFu15i { unsigned char :0; unsigned short v1:15; unsigned int v2:15; };
struct BFu0c_BFu15s_BFu15ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:15; };
struct BFu0c_BFu15s_BFu15s { unsigned char :0; unsigned short v1:15; unsigned short v2:15; };
struct BFu0c_BFu15s_BFu16i { unsigned char :0; unsigned short v1:15; unsigned int v2:16; };
struct BFu0c_BFu15s_BFu16ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:16; };
struct BFu0c_BFu15s_BFu16s { unsigned char :0; unsigned short v1:15; unsigned short v2:16; };
struct BFu0c_BFu15s_BFu17i { unsigned char :0; unsigned short v1:15; unsigned int v2:17; };
struct BFu0c_BFu15s_BFu17ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:17; };
struct BFu0c_BFu15s_BFu1c { unsigned char :0; unsigned short v1:15; unsigned char v2:1; };
struct BFu0c_BFu15s_BFu1i { unsigned char :0; unsigned short v1:15; unsigned int v2:1; };
struct BFu0c_BFu15s_BFu1ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:1; };
struct BFu0c_BFu15s_BFu1s { unsigned char :0; unsigned short v1:15; unsigned short v2:1; };
struct BFu0c_BFu15s_BFu31i { unsigned char :0; unsigned short v1:15; unsigned int v2:31; };
struct BFu0c_BFu15s_BFu31ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:31; };
struct BFu0c_BFu15s_BFu32i { unsigned char :0; unsigned short v1:15; unsigned int v2:32; };
struct BFu0c_BFu15s_BFu32ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:32; };
struct BFu0c_BFu15s_BFu33 { unsigned char :0; unsigned short v1:15; unsigned long long v2:33; };
struct BFu0c_BFu15s_BFu7c { unsigned char :0; unsigned short v1:15; unsigned char v2:7; };
struct BFu0c_BFu15s_BFu7i { unsigned char :0; unsigned short v1:15; unsigned int v2:7; };
struct BFu0c_BFu15s_BFu7ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:7; };
struct BFu0c_BFu15s_BFu7s { unsigned char :0; unsigned short v1:15; unsigned short v2:7; };
struct BFu0c_BFu15s_BFu8c { unsigned char :0; unsigned short v1:15; unsigned char v2:8; };
struct BFu0c_BFu15s_BFu8i { unsigned char :0; unsigned short v1:15; unsigned int v2:8; };
struct BFu0c_BFu15s_BFu8ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:8; };
struct BFu0c_BFu15s_BFu8s { unsigned char :0; unsigned short v1:15; unsigned short v2:8; };
struct BFu0c_BFu15s_BFu9i { unsigned char :0; unsigned short v1:15; unsigned int v2:9; };
struct BFu0c_BFu15s_BFu9ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:9; };
struct BFu0c_BFu15s_BFu9s { unsigned char :0; unsigned short v1:15; unsigned short v2:9; };
struct BFu0c_BFu15s_C { unsigned char :0; unsigned short v1:15; char v2; };
struct BFu0c_BFu15s_D { unsigned char :0; unsigned short v1:15; double v2; };
struct BFu0c_BFu15s_F { unsigned char :0; unsigned short v1:15; float v2; };
struct BFu0c_BFu15s_I { unsigned char :0; unsigned short v1:15; int v2; };
struct BFu0c_BFu15s_Ip { unsigned char :0; unsigned short v1:15; int * v2; };
struct BFu0c_BFu15s_L { unsigned char :0; unsigned short v1:15; long long v2; };
struct BFu0c_BFu15s_S { unsigned char :0; unsigned short v1:15; short v2; };
struct BFu0c_BFu15s_Uc { unsigned char :0; unsigned short v1:15; unsigned char v2; };
struct BFu0c_BFu15s_Ui { unsigned char :0; unsigned short v1:15; unsigned int v2; };
struct BFu0c_BFu15s_Ul { unsigned char :0; unsigned short v1:15; unsigned long long v2; };
struct BFu0c_BFu15s_Us { unsigned char :0; unsigned short v1:15; unsigned short v2; };
struct BFu0c_BFu15s_Vp { unsigned char :0; unsigned short v1:15; void * v2; };
struct BFu0c_BFu16i { unsigned char :0; unsigned int v1:16; };
struct BFu0c_BFu16i_BFu0c { unsigned char :0; unsigned int v1:16; unsigned char :0; };
struct BFu0c_BFu16i_BFu0i { unsigned char :0; unsigned int v1:16; unsigned int :0; };
struct BFu0c_BFu16i_BFu0ll { unsigned char :0; unsigned int v1:16; unsigned long long :0; };
struct BFu0c_BFu16i_BFu0s { unsigned char :0; unsigned int v1:16; unsigned short :0; };
struct BFu0c_BFu16i_BFu15i { unsigned char :0; unsigned int v1:16; unsigned int v2:15; };
struct BFu0c_BFu16i_BFu15ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:15; };
struct BFu0c_BFu16i_BFu15s { unsigned char :0; unsigned int v1:16; unsigned short v2:15; };
struct BFu0c_BFu16i_BFu16i { unsigned char :0; unsigned int v1:16; unsigned int v2:16; };
struct BFu0c_BFu16i_BFu16ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:16; };
struct BFu0c_BFu16i_BFu16s { unsigned char :0; unsigned int v1:16; unsigned short v2:16; };
struct BFu0c_BFu16i_BFu17i { unsigned char :0; unsigned int v1:16; unsigned int v2:17; };
struct BFu0c_BFu16i_BFu17ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:17; };
struct BFu0c_BFu16i_BFu1c { unsigned char :0; unsigned int v1:16; unsigned char v2:1; };
struct BFu0c_BFu16i_BFu1i { unsigned char :0; unsigned int v1:16; unsigned int v2:1; };
struct BFu0c_BFu16i_BFu1ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:1; };
struct BFu0c_BFu16i_BFu1s { unsigned char :0; unsigned int v1:16; unsigned short v2:1; };
struct BFu0c_BFu16i_BFu31i { unsigned char :0; unsigned int v1:16; unsigned int v2:31; };
struct BFu0c_BFu16i_BFu31ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:31; };
struct BFu0c_BFu16i_BFu32i { unsigned char :0; unsigned int v1:16; unsigned int v2:32; };
struct BFu0c_BFu16i_BFu32ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:32; };
struct BFu0c_BFu16i_BFu33 { unsigned char :0; unsigned int v1:16; unsigned long long v2:33; };
struct BFu0c_BFu16i_BFu7c { unsigned char :0; unsigned int v1:16; unsigned char v2:7; };
struct BFu0c_BFu16i_BFu7i { unsigned char :0; unsigned int v1:16; unsigned int v2:7; };
struct BFu0c_BFu16i_BFu7ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:7; };
struct BFu0c_BFu16i_BFu7s { unsigned char :0; unsigned int v1:16; unsigned short v2:7; };
struct BFu0c_BFu16i_BFu8c { unsigned char :0; unsigned int v1:16; unsigned char v2:8; };
struct BFu0c_BFu16i_BFu8i { unsigned char :0; unsigned int v1:16; unsigned int v2:8; };
struct BFu0c_BFu16i_BFu8ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:8; };
struct BFu0c_BFu16i_BFu8s { unsigned char :0; unsigned int v1:16; unsigned short v2:8; };
struct BFu0c_BFu16i_BFu9i { unsigned char :0; unsigned int v1:16; unsigned int v2:9; };
struct BFu0c_BFu16i_BFu9ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:9; };
struct BFu0c_BFu16i_BFu9s { unsigned char :0; unsigned int v1:16; unsigned short v2:9; };
struct BFu0c_BFu16i_C { unsigned char :0; unsigned int v1:16; char v2; };
struct BFu0c_BFu16i_D { unsigned char :0; unsigned int v1:16; double v2; };
struct BFu0c_BFu16i_F { unsigned char :0; unsigned int v1:16; float v2; };
struct BFu0c_BFu16i_I { unsigned char :0; unsigned int v1:16; int v2; };
struct BFu0c_BFu16i_Ip { unsigned char :0; unsigned int v1:16; int * v2; };
struct BFu0c_BFu16i_L { unsigned char :0; unsigned int v1:16; long long v2; };
struct BFu0c_BFu16i_S { unsigned char :0; unsigned int v1:16; short v2; };
struct BFu0c_BFu16i_Uc { unsigned char :0; unsigned int v1:16; unsigned char v2; };
struct BFu0c_BFu16i_Ui { unsigned char :0; unsigned int v1:16; unsigned int v2; };
struct BFu0c_BFu16i_Ul { unsigned char :0; unsigned int v1:16; unsigned long long v2; };
struct BFu0c_BFu16i_Us { unsigned char :0; unsigned int v1:16; unsigned short v2; };
struct BFu0c_BFu16i_Vp { unsigned char :0; unsigned int v1:16; void * v2; };
struct BFu0c_BFu16ll { unsigned char :0; unsigned long long v1:16; };
struct BFu0c_BFu16ll_BFu0c { unsigned char :0; unsigned long long v1:16; unsigned char :0; };
struct BFu0c_BFu16ll_BFu0i { unsigned char :0; unsigned long long v1:16; unsigned int :0; };
struct BFu0c_BFu16ll_BFu0ll { unsigned char :0; unsigned long long v1:16; unsigned long long :0; };
struct BFu0c_BFu16ll_BFu0s { unsigned char :0; unsigned long long v1:16; unsigned short :0; };
struct BFu0c_BFu16ll_BFu15i { unsigned char :0; unsigned long long v1:16; unsigned int v2:15; };
struct BFu0c_BFu16ll_BFu15ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:15; };
struct BFu0c_BFu16ll_BFu15s { unsigned char :0; unsigned long long v1:16; unsigned short v2:15; };
struct BFu0c_BFu16ll_BFu16i { unsigned char :0; unsigned long long v1:16; unsigned int v2:16; };
struct BFu0c_BFu16ll_BFu16ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:16; };
struct BFu0c_BFu16ll_BFu16s { unsigned char :0; unsigned long long v1:16; unsigned short v2:16; };
struct BFu0c_BFu16ll_BFu17i { unsigned char :0; unsigned long long v1:16; unsigned int v2:17; };
struct BFu0c_BFu16ll_BFu17ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:17; };
struct BFu0c_BFu16ll_BFu1c { unsigned char :0; unsigned long long v1:16; unsigned char v2:1; };
struct BFu0c_BFu16ll_BFu1i { unsigned char :0; unsigned long long v1:16; unsigned int v2:1; };
struct BFu0c_BFu16ll_BFu1ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:1; };
struct BFu0c_BFu16ll_BFu1s { unsigned char :0; unsigned long long v1:16; unsigned short v2:1; };
struct BFu0c_BFu16ll_BFu31i { unsigned char :0; unsigned long long v1:16; unsigned int v2:31; };
struct BFu0c_BFu16ll_BFu31ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:31; };
struct BFu0c_BFu16ll_BFu32i { unsigned char :0; unsigned long long v1:16; unsigned int v2:32; };
struct BFu0c_BFu16ll_BFu32ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:32; };
struct BFu0c_BFu16ll_BFu33 { unsigned char :0; unsigned long long v1:16; unsigned long long v2:33; };
struct BFu0c_BFu16ll_BFu7c { unsigned char :0; unsigned long long v1:16; unsigned char v2:7; };
struct BFu0c_BFu16ll_BFu7i { unsigned char :0; unsigned long long v1:16; unsigned int v2:7; };
struct BFu0c_BFu16ll_BFu7ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:7; };
struct BFu0c_BFu16ll_BFu7s { unsigned char :0; unsigned long long v1:16; unsigned short v2:7; };
struct BFu0c_BFu16ll_BFu8c { unsigned char :0; unsigned long long v1:16; unsigned char v2:8; };
struct BFu0c_BFu16ll_BFu8i { unsigned char :0; unsigned long long v1:16; unsigned int v2:8; };
struct BFu0c_BFu16ll_BFu8ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:8; };
struct BFu0c_BFu16ll_BFu8s { unsigned char :0; unsigned long long v1:16; unsigned short v2:8; };
struct BFu0c_BFu16ll_BFu9i { unsigned char :0; unsigned long long v1:16; unsigned int v2:9; };
struct BFu0c_BFu16ll_BFu9ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:9; };
struct BFu0c_BFu16ll_BFu9s { unsigned char :0; unsigned long long v1:16; unsigned short v2:9; };
struct BFu0c_BFu16ll_C { unsigned char :0; unsigned long long v1:16; char v2; };
struct BFu0c_BFu16ll_D { unsigned char :0; unsigned long long v1:16; double v2; };
struct BFu0c_BFu16ll_F { unsigned char :0; unsigned long long v1:16; float v2; };
struct BFu0c_BFu16ll_I { unsigned char :0; unsigned long long v1:16; int v2; };
struct BFu0c_BFu16ll_Ip { unsigned char :0; unsigned long long v1:16; int * v2; };
struct BFu0c_BFu16ll_L { unsigned char :0; unsigned long long v1:16; long long v2; };
struct BFu0c_BFu16ll_S { unsigned char :0; unsigned long long v1:16; short v2; };
struct BFu0c_BFu16ll_Uc { unsigned char :0; unsigned long long v1:16; unsigned char v2; };
struct BFu0c_BFu16ll_Ui { unsigned char :0; unsigned long long v1:16; unsigned int v2; };
struct BFu0c_BFu16ll_Ul { unsigned char :0; unsigned long long v1:16; unsigned long long v2; };
struct BFu0c_BFu16ll_Us { unsigned char :0; unsigned long long v1:16; unsigned short v2; };
struct BFu0c_BFu16ll_Vp { unsigned char :0; unsigned long long v1:16; void * v2; };
struct BFu0c_BFu16s { unsigned char :0; unsigned short v1:16; };
struct BFu0c_BFu16s_BFu0c { unsigned char :0; unsigned short v1:16; unsigned char :0; };
struct BFu0c_BFu16s_BFu0i { unsigned char :0; unsigned short v1:16; unsigned int :0; };
struct BFu0c_BFu16s_BFu0ll { unsigned char :0; unsigned short v1:16; unsigned long long :0; };
struct BFu0c_BFu16s_BFu0s { unsigned char :0; unsigned short v1:16; unsigned short :0; };
struct BFu0c_BFu16s_BFu15i { unsigned char :0; unsigned short v1:16; unsigned int v2:15; };
struct BFu0c_BFu16s_BFu15ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:15; };
struct BFu0c_BFu16s_BFu15s { unsigned char :0; unsigned short v1:16; unsigned short v2:15; };
struct BFu0c_BFu16s_BFu16i { unsigned char :0; unsigned short v1:16; unsigned int v2:16; };
struct BFu0c_BFu16s_BFu16ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:16; };
struct BFu0c_BFu16s_BFu16s { unsigned char :0; unsigned short v1:16; unsigned short v2:16; };
struct BFu0c_BFu16s_BFu17i { unsigned char :0; unsigned short v1:16; unsigned int v2:17; };
struct BFu0c_BFu16s_BFu17ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:17; };
struct BFu0c_BFu16s_BFu1c { unsigned char :0; unsigned short v1:16; unsigned char v2:1; };
struct BFu0c_BFu16s_BFu1i { unsigned char :0; unsigned short v1:16; unsigned int v2:1; };
struct BFu0c_BFu16s_BFu1ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:1; };
struct BFu0c_BFu16s_BFu1s { unsigned char :0; unsigned short v1:16; unsigned short v2:1; };
struct BFu0c_BFu16s_BFu31i { unsigned char :0; unsigned short v1:16; unsigned int v2:31; };
struct BFu0c_BFu16s_BFu31ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:31; };
struct BFu0c_BFu16s_BFu32i { unsigned char :0; unsigned short v1:16; unsigned int v2:32; };
struct BFu0c_BFu16s_BFu32ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:32; };
struct BFu0c_BFu16s_BFu33 { unsigned char :0; unsigned short v1:16; unsigned long long v2:33; };
struct BFu0c_BFu16s_BFu7c { unsigned char :0; unsigned short v1:16; unsigned char v2:7; };
struct BFu0c_BFu16s_BFu7i { unsigned char :0; unsigned short v1:16; unsigned int v2:7; };
struct BFu0c_BFu16s_BFu7ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:7; };
struct BFu0c_BFu16s_BFu7s { unsigned char :0; unsigned short v1:16; unsigned short v2:7; };
struct BFu0c_BFu16s_BFu8c { unsigned char :0; unsigned short v1:16; unsigned char v2:8; };
struct BFu0c_BFu16s_BFu8i { unsigned char :0; unsigned short v1:16; unsigned int v2:8; };
struct BFu0c_BFu16s_BFu8ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:8; };
struct BFu0c_BFu16s_BFu8s { unsigned char :0; unsigned short v1:16; unsigned short v2:8; };
struct BFu0c_BFu16s_BFu9i { unsigned char :0; unsigned short v1:16; unsigned int v2:9; };
struct BFu0c_BFu16s_BFu9ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:9; };
struct BFu0c_BFu16s_BFu9s { unsigned char :0; unsigned short v1:16; unsigned short v2:9; };
struct BFu0c_BFu16s_C { unsigned char :0; unsigned short v1:16; char v2; };
struct BFu0c_BFu16s_D { unsigned char :0; unsigned short v1:16; double v2; };
struct BFu0c_BFu16s_F { unsigned char :0; unsigned short v1:16; float v2; };
struct BFu0c_BFu16s_I { unsigned char :0; unsigned short v1:16; int v2; };
struct BFu0c_BFu16s_Ip { unsigned char :0; unsigned short v1:16; int * v2; };
struct BFu0c_BFu16s_L { unsigned char :0; unsigned short v1:16; long long v2; };
struct BFu0c_BFu16s_S { unsigned char :0; unsigned short v1:16; short v2; };
struct BFu0c_BFu16s_Uc { unsigned char :0; unsigned short v1:16; unsigned char v2; };
struct BFu0c_BFu16s_Ui { unsigned char :0; unsigned short v1:16; unsigned int v2; };
struct BFu0c_BFu16s_Ul { unsigned char :0; unsigned short v1:16; unsigned long long v2; };
struct BFu0c_BFu16s_Us { unsigned char :0; unsigned short v1:16; unsigned short v2; };
struct BFu0c_BFu16s_Vp { unsigned char :0; unsigned short v1:16; void * v2; };
struct BFu0c_BFu17i { unsigned char :0; unsigned int v1:17; };
struct BFu0c_BFu17i_BFu0c { unsigned char :0; unsigned int v1:17; unsigned char :0; };
struct BFu0c_BFu17i_BFu0i { unsigned char :0; unsigned int v1:17; unsigned int :0; };
struct BFu0c_BFu17i_BFu0ll { unsigned char :0; unsigned int v1:17; unsigned long long :0; };
struct BFu0c_BFu17i_BFu0s { unsigned char :0; unsigned int v1:17; unsigned short :0; };
struct BFu0c_BFu17i_BFu15i { unsigned char :0; unsigned int v1:17; unsigned int v2:15; };
struct BFu0c_BFu17i_BFu15ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:15; };
struct BFu0c_BFu17i_BFu15s { unsigned char :0; unsigned int v1:17; unsigned short v2:15; };
struct BFu0c_BFu17i_BFu16i { unsigned char :0; unsigned int v1:17; unsigned int v2:16; };
struct BFu0c_BFu17i_BFu16ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:16; };
struct BFu0c_BFu17i_BFu16s { unsigned char :0; unsigned int v1:17; unsigned short v2:16; };
struct BFu0c_BFu17i_BFu17i { unsigned char :0; unsigned int v1:17; unsigned int v2:17; };
struct BFu0c_BFu17i_BFu17ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:17; };
struct BFu0c_BFu17i_BFu1c { unsigned char :0; unsigned int v1:17; unsigned char v2:1; };
struct BFu0c_BFu17i_BFu1i { unsigned char :0; unsigned int v1:17; unsigned int v2:1; };
struct BFu0c_BFu17i_BFu1ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:1; };
struct BFu0c_BFu17i_BFu1s { unsigned char :0; unsigned int v1:17; unsigned short v2:1; };
struct BFu0c_BFu17i_BFu31i { unsigned char :0; unsigned int v1:17; unsigned int v2:31; };
struct BFu0c_BFu17i_BFu31ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:31; };
struct BFu0c_BFu17i_BFu32i { unsigned char :0; unsigned int v1:17; unsigned int v2:32; };
struct BFu0c_BFu17i_BFu32ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:32; };
struct BFu0c_BFu17i_BFu33 { unsigned char :0; unsigned int v1:17; unsigned long long v2:33; };
struct BFu0c_BFu17i_BFu7c { unsigned char :0; unsigned int v1:17; unsigned char v2:7; };
struct BFu0c_BFu17i_BFu7i { unsigned char :0; unsigned int v1:17; unsigned int v2:7; };
struct BFu0c_BFu17i_BFu7ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:7; };
struct BFu0c_BFu17i_BFu7s { unsigned char :0; unsigned int v1:17; unsigned short v2:7; };
struct BFu0c_BFu17i_BFu8c { unsigned char :0; unsigned int v1:17; unsigned char v2:8; };
struct BFu0c_BFu17i_BFu8i { unsigned char :0; unsigned int v1:17; unsigned int v2:8; };
struct BFu0c_BFu17i_BFu8ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:8; };
struct BFu0c_BFu17i_BFu8s { unsigned char :0; unsigned int v1:17; unsigned short v2:8; };
struct BFu0c_BFu17i_BFu9i { unsigned char :0; unsigned int v1:17; unsigned int v2:9; };
struct BFu0c_BFu17i_BFu9ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:9; };
struct BFu0c_BFu17i_BFu9s { unsigned char :0; unsigned int v1:17; unsigned short v2:9; };
struct BFu0c_BFu17i_C { unsigned char :0; unsigned int v1:17; char v2; };
struct BFu0c_BFu17i_D { unsigned char :0; unsigned int v1:17; double v2; };
struct BFu0c_BFu17i_F { unsigned char :0; unsigned int v1:17; float v2; };
struct BFu0c_BFu17i_I { unsigned char :0; unsigned int v1:17; int v2; };
struct BFu0c_BFu17i_Ip { unsigned char :0; unsigned int v1:17; int * v2; };
struct BFu0c_BFu17i_L { unsigned char :0; unsigned int v1:17; long long v2; };
struct BFu0c_BFu17i_S { unsigned char :0; unsigned int v1:17; short v2; };
struct BFu0c_BFu17i_Uc { unsigned char :0; unsigned int v1:17; unsigned char v2; };
struct BFu0c_BFu17i_Ui { unsigned char :0; unsigned int v1:17; unsigned int v2; };
struct BFu0c_BFu17i_Ul { unsigned char :0; unsigned int v1:17; unsigned long long v2; };
struct BFu0c_BFu17i_Us { unsigned char :0; unsigned int v1:17; unsigned short v2; };
struct BFu0c_BFu17i_Vp { unsigned char :0; unsigned int v1:17; void * v2; };
struct BFu0c_BFu17ll { unsigned char :0; unsigned long long v1:17; };
struct BFu0c_BFu17ll_BFu0c { unsigned char :0; unsigned long long v1:17; unsigned char :0; };
struct BFu0c_BFu17ll_BFu0i { unsigned char :0; unsigned long long v1:17; unsigned int :0; };
struct BFu0c_BFu17ll_BFu0ll { unsigned char :0; unsigned long long v1:17; unsigned long long :0; };
struct BFu0c_BFu17ll_BFu0s { unsigned char :0; unsigned long long v1:17; unsigned short :0; };
struct BFu0c_BFu17ll_BFu15i { unsigned char :0; unsigned long long v1:17; unsigned int v2:15; };
struct BFu0c_BFu17ll_BFu15ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:15; };
struct BFu0c_BFu17ll_BFu15s { unsigned char :0; unsigned long long v1:17; unsigned short v2:15; };
struct BFu0c_BFu17ll_BFu16i { unsigned char :0; unsigned long long v1:17; unsigned int v2:16; };
struct BFu0c_BFu17ll_BFu16ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:16; };
struct BFu0c_BFu17ll_BFu16s { unsigned char :0; unsigned long long v1:17; unsigned short v2:16; };
struct BFu0c_BFu17ll_BFu17i { unsigned char :0; unsigned long long v1:17; unsigned int v2:17; };
struct BFu0c_BFu17ll_BFu17ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:17; };
struct BFu0c_BFu17ll_BFu1c { unsigned char :0; unsigned long long v1:17; unsigned char v2:1; };
struct BFu0c_BFu17ll_BFu1i { unsigned char :0; unsigned long long v1:17; unsigned int v2:1; };
struct BFu0c_BFu17ll_BFu1ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:1; };
struct BFu0c_BFu17ll_BFu1s { unsigned char :0; unsigned long long v1:17; unsigned short v2:1; };
struct BFu0c_BFu17ll_BFu31i { unsigned char :0; unsigned long long v1:17; unsigned int v2:31; };
struct BFu0c_BFu17ll_BFu31ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:31; };
struct BFu0c_BFu17ll_BFu32i { unsigned char :0; unsigned long long v1:17; unsigned int v2:32; };
struct BFu0c_BFu17ll_BFu32ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:32; };
struct BFu0c_BFu17ll_BFu33 { unsigned char :0; unsigned long long v1:17; unsigned long long v2:33; };
struct BFu0c_BFu17ll_BFu7c { unsigned char :0; unsigned long long v1:17; unsigned char v2:7; };
struct BFu0c_BFu17ll_BFu7i { unsigned char :0; unsigned long long v1:17; unsigned int v2:7; };
struct BFu0c_BFu17ll_BFu7ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:7; };
struct BFu0c_BFu17ll_BFu7s { unsigned char :0; unsigned long long v1:17; unsigned short v2:7; };
struct BFu0c_BFu17ll_BFu8c { unsigned char :0; unsigned long long v1:17; unsigned char v2:8; };
struct BFu0c_BFu17ll_BFu8i { unsigned char :0; unsigned long long v1:17; unsigned int v2:8; };
struct BFu0c_BFu17ll_BFu8ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:8; };
struct BFu0c_BFu17ll_BFu8s { unsigned char :0; unsigned long long v1:17; unsigned short v2:8; };
struct BFu0c_BFu17ll_BFu9i { unsigned char :0; unsigned long long v1:17; unsigned int v2:9; };
struct BFu0c_BFu17ll_BFu9ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:9; };
struct BFu0c_BFu17ll_BFu9s { unsigned char :0; unsigned long long v1:17; unsigned short v2:9; };
struct BFu0c_BFu17ll_C { unsigned char :0; unsigned long long v1:17; char v2; };
struct BFu0c_BFu17ll_D { unsigned char :0; unsigned long long v1:17; double v2; };
struct BFu0c_BFu17ll_F { unsigned char :0; unsigned long long v1:17; float v2; };
struct BFu0c_BFu17ll_I { unsigned char :0; unsigned long long v1:17; int v2; };
struct BFu0c_BFu17ll_Ip { unsigned char :0; unsigned long long v1:17; int * v2; };
struct BFu0c_BFu17ll_L { unsigned char :0; unsigned long long v1:17; long long v2; };
struct BFu0c_BFu17ll_S { unsigned char :0; unsigned long long v1:17; short v2; };
struct BFu0c_BFu17ll_Uc { unsigned char :0; unsigned long long v1:17; unsigned char v2; };
struct BFu0c_BFu17ll_Ui { unsigned char :0; unsigned long long v1:17; unsigned int v2; };
struct BFu0c_BFu17ll_Ul { unsigned char :0; unsigned long long v1:17; unsigned long long v2; };
struct BFu0c_BFu17ll_Us { unsigned char :0; unsigned long long v1:17; unsigned short v2; };
struct BFu0c_BFu17ll_Vp { unsigned char :0; unsigned long long v1:17; void * v2; };
struct BFu0c_BFu1c { unsigned char :0; unsigned char v1:1; };
struct BFu0c_BFu1c_BFu0c { unsigned char :0; unsigned char v1:1; unsigned char :0; };
struct BFu0c_BFu1c_BFu0i { unsigned char :0; unsigned char v1:1; unsigned int :0; };
struct BFu0c_BFu1c_BFu0ll { unsigned char :0; unsigned char v1:1; unsigned long long :0; };
struct BFu0c_BFu1c_BFu0s { unsigned char :0; unsigned char v1:1; unsigned short :0; };
struct BFu0c_BFu1c_BFu15i { unsigned char :0; unsigned char v1:1; unsigned int v2:15; };
struct BFu0c_BFu1c_BFu15ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:15; };
struct BFu0c_BFu1c_BFu15s { unsigned char :0; unsigned char v1:1; unsigned short v2:15; };
struct BFu0c_BFu1c_BFu16i { unsigned char :0; unsigned char v1:1; unsigned int v2:16; };
struct BFu0c_BFu1c_BFu16ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:16; };
struct BFu0c_BFu1c_BFu16s { unsigned char :0; unsigned char v1:1; unsigned short v2:16; };
struct BFu0c_BFu1c_BFu17i { unsigned char :0; unsigned char v1:1; unsigned int v2:17; };
struct BFu0c_BFu1c_BFu17ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:17; };
struct BFu0c_BFu1c_BFu1c { unsigned char :0; unsigned char v1:1; unsigned char v2:1; };
struct BFu0c_BFu1c_BFu1i { unsigned char :0; unsigned char v1:1; unsigned int v2:1; };
struct BFu0c_BFu1c_BFu1ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:1; };
struct BFu0c_BFu1c_BFu1s { unsigned char :0; unsigned char v1:1; unsigned short v2:1; };
struct BFu0c_BFu1c_BFu31i { unsigned char :0; unsigned char v1:1; unsigned int v2:31; };
struct BFu0c_BFu1c_BFu31ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:31; };
struct BFu0c_BFu1c_BFu32i { unsigned char :0; unsigned char v1:1; unsigned int v2:32; };
struct BFu0c_BFu1c_BFu32ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:32; };
struct BFu0c_BFu1c_BFu33 { unsigned char :0; unsigned char v1:1; unsigned long long v2:33; };
struct BFu0c_BFu1c_BFu7c { unsigned char :0; unsigned char v1:1; unsigned char v2:7; };
struct BFu0c_BFu1c_BFu7i { unsigned char :0; unsigned char v1:1; unsigned int v2:7; };
struct BFu0c_BFu1c_BFu7ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:7; };
struct BFu0c_BFu1c_BFu7s { unsigned char :0; unsigned char v1:1; unsigned short v2:7; };
struct BFu0c_BFu1c_BFu8c { unsigned char :0; unsigned char v1:1; unsigned char v2:8; };
struct BFu0c_BFu1c_BFu8i { unsigned char :0; unsigned char v1:1; unsigned int v2:8; };
struct BFu0c_BFu1c_BFu8ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:8; };
struct BFu0c_BFu1c_BFu8s { unsigned char :0; unsigned char v1:1; unsigned short v2:8; };
struct BFu0c_BFu1c_BFu9i { unsigned char :0; unsigned char v1:1; unsigned int v2:9; };
struct BFu0c_BFu1c_BFu9ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:9; };
struct BFu0c_BFu1c_BFu9s { unsigned char :0; unsigned char v1:1; unsigned short v2:9; };
struct BFu0c_BFu1c_C { unsigned char :0; unsigned char v1:1; char v2; };
struct BFu0c_BFu1c_D { unsigned char :0; unsigned char v1:1; double v2; };
struct BFu0c_BFu1c_F { unsigned char :0; unsigned char v1:1; float v2; };
struct BFu0c_BFu1c_I { unsigned char :0; unsigned char v1:1; int v2; };
struct BFu0c_BFu1c_Ip { unsigned char :0; unsigned char v1:1; int * v2; };
struct BFu0c_BFu1c_L { unsigned char :0; unsigned char v1:1; long long v2; };
struct BFu0c_BFu1c_S { unsigned char :0; unsigned char v1:1; short v2; };
struct BFu0c_BFu1c_Uc { unsigned char :0; unsigned char v1:1; unsigned char v2; };
struct BFu0c_BFu1c_Ui { unsigned char :0; unsigned char v1:1; unsigned int v2; };
struct BFu0c_BFu1c_Ul { unsigned char :0; unsigned char v1:1; unsigned long long v2; };
struct BFu0c_BFu1c_Us { unsigned char :0; unsigned char v1:1; unsigned short v2; };
struct BFu0c_BFu1c_Vp { unsigned char :0; unsigned char v1:1; void * v2; };
struct BFu0c_BFu1i { unsigned char :0; unsigned int v1:1; };
struct BFu0c_BFu1i_BFu0c { unsigned char :0; unsigned int v1:1; unsigned char :0; };
struct BFu0c_BFu1i_BFu0i { unsigned char :0; unsigned int v1:1; unsigned int :0; };
struct BFu0c_BFu1i_BFu0ll { unsigned char :0; unsigned int v1:1; unsigned long long :0; };
struct BFu0c_BFu1i_BFu0s { unsigned char :0; unsigned int v1:1; unsigned short :0; };
struct BFu0c_BFu1i_BFu15i { unsigned char :0; unsigned int v1:1; unsigned int v2:15; };
struct BFu0c_BFu1i_BFu15ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:15; };
struct BFu0c_BFu1i_BFu15s { unsigned char :0; unsigned int v1:1; unsigned short v2:15; };
struct BFu0c_BFu1i_BFu16i { unsigned char :0; unsigned int v1:1; unsigned int v2:16; };
struct BFu0c_BFu1i_BFu16ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:16; };
struct BFu0c_BFu1i_BFu16s { unsigned char :0; unsigned int v1:1; unsigned short v2:16; };
struct BFu0c_BFu1i_BFu17i { unsigned char :0; unsigned int v1:1; unsigned int v2:17; };
struct BFu0c_BFu1i_BFu17ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:17; };
struct BFu0c_BFu1i_BFu1c { unsigned char :0; unsigned int v1:1; unsigned char v2:1; };
struct BFu0c_BFu1i_BFu1i { unsigned char :0; unsigned int v1:1; unsigned int v2:1; };
struct BFu0c_BFu1i_BFu1ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:1; };
struct BFu0c_BFu1i_BFu1s { unsigned char :0; unsigned int v1:1; unsigned short v2:1; };
struct BFu0c_BFu1i_BFu31i { unsigned char :0; unsigned int v1:1; unsigned int v2:31; };
struct BFu0c_BFu1i_BFu31ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:31; };
struct BFu0c_BFu1i_BFu32i { unsigned char :0; unsigned int v1:1; unsigned int v2:32; };
struct BFu0c_BFu1i_BFu32ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:32; };
struct BFu0c_BFu1i_BFu33 { unsigned char :0; unsigned int v1:1; unsigned long long v2:33; };
struct BFu0c_BFu1i_BFu7c { unsigned char :0; unsigned int v1:1; unsigned char v2:7; };
struct BFu0c_BFu1i_BFu7i { unsigned char :0; unsigned int v1:1; unsigned int v2:7; };
struct BFu0c_BFu1i_BFu7ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:7; };
struct BFu0c_BFu1i_BFu7s { unsigned char :0; unsigned int v1:1; unsigned short v2:7; };
struct BFu0c_BFu1i_BFu8c { unsigned char :0; unsigned int v1:1; unsigned char v2:8; };
struct BFu0c_BFu1i_BFu8i { unsigned char :0; unsigned int v1:1; unsigned int v2:8; };
struct BFu0c_BFu1i_BFu8ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:8; };
struct BFu0c_BFu1i_BFu8s { unsigned char :0; unsigned int v1:1; unsigned short v2:8; };
struct BFu0c_BFu1i_BFu9i { unsigned char :0; unsigned int v1:1; unsigned int v2:9; };
struct BFu0c_BFu1i_BFu9ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:9; };
struct BFu0c_BFu1i_BFu9s { unsigned char :0; unsigned int v1:1; unsigned short v2:9; };
struct BFu0c_BFu1i_C { unsigned char :0; unsigned int v1:1; char v2; };
struct BFu0c_BFu1i_D { unsigned char :0; unsigned int v1:1; double v2; };
struct BFu0c_BFu1i_F { unsigned char :0; unsigned int v1:1; float v2; };
struct BFu0c_BFu1i_I { unsigned char :0; unsigned int v1:1; int v2; };
struct BFu0c_BFu1i_Ip { unsigned char :0; unsigned int v1:1; int * v2; };
struct BFu0c_BFu1i_L { unsigned char :0; unsigned int v1:1; long long v2; };
struct BFu0c_BFu1i_S { unsigned char :0; unsigned int v1:1; short v2; };
struct BFu0c_BFu1i_Uc { unsigned char :0; unsigned int v1:1; unsigned char v2; };
struct BFu0c_BFu1i_Ui { unsigned char :0; unsigned int v1:1; unsigned int v2; };
struct BFu0c_BFu1i_Ul { unsigned char :0; unsigned int v1:1; unsigned long long v2; };
struct BFu0c_BFu1i_Us { unsigned char :0; unsigned int v1:1; unsigned short v2; };
struct BFu0c_BFu1i_Vp { unsigned char :0; unsigned int v1:1; void * v2; };
struct BFu0c_BFu1ll { unsigned char :0; unsigned long long v1:1; };
struct BFu0c_BFu1ll_BFu0c { unsigned char :0; unsigned long long v1:1; unsigned char :0; };
struct BFu0c_BFu1ll_BFu0i { unsigned char :0; unsigned long long v1:1; unsigned int :0; };
struct BFu0c_BFu1ll_BFu0ll { unsigned char :0; unsigned long long v1:1; unsigned long long :0; };
struct BFu0c_BFu1ll_BFu0s { unsigned char :0; unsigned long long v1:1; unsigned short :0; };
struct BFu0c_BFu1ll_BFu15i { unsigned char :0; unsigned long long v1:1; unsigned int v2:15; };
struct BFu0c_BFu1ll_BFu15ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:15; };
struct BFu0c_BFu1ll_BFu15s { unsigned char :0; unsigned long long v1:1; unsigned short v2:15; };
struct BFu0c_BFu1ll_BFu16i { unsigned char :0; unsigned long long v1:1; unsigned int v2:16; };
struct BFu0c_BFu1ll_BFu16ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:16; };
struct BFu0c_BFu1ll_BFu16s { unsigned char :0; unsigned long long v1:1; unsigned short v2:16; };
struct BFu0c_BFu1ll_BFu17i { unsigned char :0; unsigned long long v1:1; unsigned int v2:17; };
struct BFu0c_BFu1ll_BFu17ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:17; };
struct BFu0c_BFu1ll_BFu1c { unsigned char :0; unsigned long long v1:1; unsigned char v2:1; };
struct BFu0c_BFu1ll_BFu1i { unsigned char :0; unsigned long long v1:1; unsigned int v2:1; };
struct BFu0c_BFu1ll_BFu1ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:1; };
struct BFu0c_BFu1ll_BFu1s { unsigned char :0; unsigned long long v1:1; unsigned short v2:1; };
struct BFu0c_BFu1ll_BFu31i { unsigned char :0; unsigned long long v1:1; unsigned int v2:31; };
struct BFu0c_BFu1ll_BFu31ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:31; };
struct BFu0c_BFu1ll_BFu32i { unsigned char :0; unsigned long long v1:1; unsigned int v2:32; };
struct BFu0c_BFu1ll_BFu32ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:32; };
struct BFu0c_BFu1ll_BFu33 { unsigned char :0; unsigned long long v1:1; unsigned long long v2:33; };
struct BFu0c_BFu1ll_BFu7c { unsigned char :0; unsigned long long v1:1; unsigned char v2:7; };
struct BFu0c_BFu1ll_BFu7i { unsigned char :0; unsigned long long v1:1; unsigned int v2:7; };
struct BFu0c_BFu1ll_BFu7ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:7; };
struct BFu0c_BFu1ll_BFu7s { unsigned char :0; unsigned long long v1:1; unsigned short v2:7; };
struct BFu0c_BFu1ll_BFu8c { unsigned char :0; unsigned long long v1:1; unsigned char v2:8; };
struct BFu0c_BFu1ll_BFu8i { unsigned char :0; unsigned long long v1:1; unsigned int v2:8; };
struct BFu0c_BFu1ll_BFu8ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:8; };
struct BFu0c_BFu1ll_BFu8s { unsigned char :0; unsigned long long v1:1; unsigned short v2:8; };
struct BFu0c_BFu1ll_BFu9i { unsigned char :0; unsigned long long v1:1; unsigned int v2:9; };
struct BFu0c_BFu1ll_BFu9ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:9; };
struct BFu0c_BFu1ll_BFu9s { unsigned char :0; unsigned long long v1:1; unsigned short v2:9; };
struct BFu0c_BFu1ll_C { unsigned char :0; unsigned long long v1:1; char v2; };
struct BFu0c_BFu1ll_D { unsigned char :0; unsigned long long v1:1; double v2; };
struct BFu0c_BFu1ll_F { unsigned char :0; unsigned long long v1:1; float v2; };
struct BFu0c_BFu1ll_I { unsigned char :0; unsigned long long v1:1; int v2; };
struct BFu0c_BFu1ll_Ip { unsigned char :0; unsigned long long v1:1; int * v2; };
struct BFu0c_BFu1ll_L { unsigned char :0; unsigned long long v1:1; long long v2; };
struct BFu0c_BFu1ll_S { unsigned char :0; unsigned long long v1:1; short v2; };
struct BFu0c_BFu1ll_Uc { unsigned char :0; unsigned long long v1:1; unsigned char v2; };
struct BFu0c_BFu1ll_Ui { unsigned char :0; unsigned long long v1:1; unsigned int v2; };
struct BFu0c_BFu1ll_Ul { unsigned char :0; unsigned long long v1:1; unsigned long long v2; };
struct BFu0c_BFu1ll_Us { unsigned char :0; unsigned long long v1:1; unsigned short v2; };
struct BFu0c_BFu1ll_Vp { unsigned char :0; unsigned long long v1:1; void * v2; };
struct BFu0c_BFu1s { unsigned char :0; unsigned short v1:1; };
struct BFu0c_BFu1s_BFu0c { unsigned char :0; unsigned short v1:1; unsigned char :0; };
struct BFu0c_BFu1s_BFu0i { unsigned char :0; unsigned short v1:1; unsigned int :0; };
struct BFu0c_BFu1s_BFu0ll { unsigned char :0; unsigned short v1:1; unsigned long long :0; };
struct BFu0c_BFu1s_BFu0s { unsigned char :0; unsigned short v1:1; unsigned short :0; };
struct BFu0c_BFu1s_BFu15i { unsigned char :0; unsigned short v1:1; unsigned int v2:15; };
struct BFu0c_BFu1s_BFu15ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:15; };
struct BFu0c_BFu1s_BFu15s { unsigned char :0; unsigned short v1:1; unsigned short v2:15; };
struct BFu0c_BFu1s_BFu16i { unsigned char :0; unsigned short v1:1; unsigned int v2:16; };
struct BFu0c_BFu1s_BFu16ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:16; };
struct BFu0c_BFu1s_BFu16s { unsigned char :0; unsigned short v1:1; unsigned short v2:16; };
struct BFu0c_BFu1s_BFu17i { unsigned char :0; unsigned short v1:1; unsigned int v2:17; };
struct BFu0c_BFu1s_BFu17ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:17; };
struct BFu0c_BFu1s_BFu1c { unsigned char :0; unsigned short v1:1; unsigned char v2:1; };
struct BFu0c_BFu1s_BFu1i { unsigned char :0; unsigned short v1:1; unsigned int v2:1; };
struct BFu0c_BFu1s_BFu1ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:1; };
struct BFu0c_BFu1s_BFu1s { unsigned char :0; unsigned short v1:1; unsigned short v2:1; };
struct BFu0c_BFu1s_BFu31i { unsigned char :0; unsigned short v1:1; unsigned int v2:31; };
struct BFu0c_BFu1s_BFu31ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:31; };
struct BFu0c_BFu1s_BFu32i { unsigned char :0; unsigned short v1:1; unsigned int v2:32; };
struct BFu0c_BFu1s_BFu32ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:32; };
struct BFu0c_BFu1s_BFu33 { unsigned char :0; unsigned short v1:1; unsigned long long v2:33; };
struct BFu0c_BFu1s_BFu7c { unsigned char :0; unsigned short v1:1; unsigned char v2:7; };
struct BFu0c_BFu1s_BFu7i { unsigned char :0; unsigned short v1:1; unsigned int v2:7; };
struct BFu0c_BFu1s_BFu7ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:7; };
struct BFu0c_BFu1s_BFu7s { unsigned char :0; unsigned short v1:1; unsigned short v2:7; };
struct BFu0c_BFu1s_BFu8c { unsigned char :0; unsigned short v1:1; unsigned char v2:8; };
struct BFu0c_BFu1s_BFu8i { unsigned char :0; unsigned short v1:1; unsigned int v2:8; };
struct BFu0c_BFu1s_BFu8ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:8; };
struct BFu0c_BFu1s_BFu8s { unsigned char :0; unsigned short v1:1; unsigned short v2:8; };
struct BFu0c_BFu1s_BFu9i { unsigned char :0; unsigned short v1:1; unsigned int v2:9; };
struct BFu0c_BFu1s_BFu9ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:9; };
struct BFu0c_BFu1s_BFu9s { unsigned char :0; unsigned short v1:1; unsigned short v2:9; };
struct BFu0c_BFu1s_C { unsigned char :0; unsigned short v1:1; char v2; };
struct BFu0c_BFu1s_D { unsigned char :0; unsigned short v1:1; double v2; };
struct BFu0c_BFu1s_F { unsigned char :0; unsigned short v1:1; float v2; };
struct BFu0c_BFu1s_I { unsigned char :0; unsigned short v1:1; int v2; };
struct BFu0c_BFu1s_Ip { unsigned char :0; unsigned short v1:1; int * v2; };
struct BFu0c_BFu1s_L { unsigned char :0; unsigned short v1:1; long long v2; };
struct BFu0c_BFu1s_S { unsigned char :0; unsigned short v1:1; short v2; };
struct BFu0c_BFu1s_Uc { unsigned char :0; unsigned short v1:1; unsigned char v2; };
struct BFu0c_BFu1s_Ui { unsigned char :0; unsigned short v1:1; unsigned int v2; };
struct BFu0c_BFu1s_Ul { unsigned char :0; unsigned short v1:1; unsigned long long v2; };
struct BFu0c_BFu1s_Us { unsigned char :0; unsigned short v1:1; unsigned short v2; };
struct BFu0c_BFu1s_Vp { unsigned char :0; unsigned short v1:1; void * v2; };
struct BFu0c_BFu31i { unsigned char :0; unsigned int v1:31; };
struct BFu0c_BFu31i_BFu0c { unsigned char :0; unsigned int v1:31; unsigned char :0; };
struct BFu0c_BFu31i_BFu0i { unsigned char :0; unsigned int v1:31; unsigned int :0; };
struct BFu0c_BFu31i_BFu0ll { unsigned char :0; unsigned int v1:31; unsigned long long :0; };
struct BFu0c_BFu31i_BFu0s { unsigned char :0; unsigned int v1:31; unsigned short :0; };
struct BFu0c_BFu31i_BFu15i { unsigned char :0; unsigned int v1:31; unsigned int v2:15; };
struct BFu0c_BFu31i_BFu15ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:15; };
struct BFu0c_BFu31i_BFu15s { unsigned char :0; unsigned int v1:31; unsigned short v2:15; };
struct BFu0c_BFu31i_BFu16i { unsigned char :0; unsigned int v1:31; unsigned int v2:16; };
struct BFu0c_BFu31i_BFu16ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:16; };
struct BFu0c_BFu31i_BFu16s { unsigned char :0; unsigned int v1:31; unsigned short v2:16; };
struct BFu0c_BFu31i_BFu17i { unsigned char :0; unsigned int v1:31; unsigned int v2:17; };
struct BFu0c_BFu31i_BFu17ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:17; };
struct BFu0c_BFu31i_BFu1c { unsigned char :0; unsigned int v1:31; unsigned char v2:1; };
struct BFu0c_BFu31i_BFu1i { unsigned char :0; unsigned int v1:31; unsigned int v2:1; };
struct BFu0c_BFu31i_BFu1ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:1; };
struct BFu0c_BFu31i_BFu1s { unsigned char :0; unsigned int v1:31; unsigned short v2:1; };
struct BFu0c_BFu31i_BFu31i { unsigned char :0; unsigned int v1:31; unsigned int v2:31; };
struct BFu0c_BFu31i_BFu31ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:31; };
struct BFu0c_BFu31i_BFu32i { unsigned char :0; unsigned int v1:31; unsigned int v2:32; };
struct BFu0c_BFu31i_BFu32ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:32; };
struct BFu0c_BFu31i_BFu33 { unsigned char :0; unsigned int v1:31; unsigned long long v2:33; };
struct BFu0c_BFu31i_BFu7c { unsigned char :0; unsigned int v1:31; unsigned char v2:7; };
struct BFu0c_BFu31i_BFu7i { unsigned char :0; unsigned int v1:31; unsigned int v2:7; };
struct BFu0c_BFu31i_BFu7ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:7; };
struct BFu0c_BFu31i_BFu7s { unsigned char :0; unsigned int v1:31; unsigned short v2:7; };
struct BFu0c_BFu31i_BFu8c { unsigned char :0; unsigned int v1:31; unsigned char v2:8; };
struct BFu0c_BFu31i_BFu8i { unsigned char :0; unsigned int v1:31; unsigned int v2:8; };
struct BFu0c_BFu31i_BFu8ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:8; };
struct BFu0c_BFu31i_BFu8s { unsigned char :0; unsigned int v1:31; unsigned short v2:8; };
struct BFu0c_BFu31i_BFu9i { unsigned char :0; unsigned int v1:31; unsigned int v2:9; };
struct BFu0c_BFu31i_BFu9ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:9; };
struct BFu0c_BFu31i_BFu9s { unsigned char :0; unsigned int v1:31; unsigned short v2:9; };
struct BFu0c_BFu31i_C { unsigned char :0; unsigned int v1:31; char v2; };
struct BFu0c_BFu31i_D { unsigned char :0; unsigned int v1:31; double v2; };
struct BFu0c_BFu31i_F { unsigned char :0; unsigned int v1:31; float v2; };
struct BFu0c_BFu31i_I { unsigned char :0; unsigned int v1:31; int v2; };
struct BFu0c_BFu31i_Ip { unsigned char :0; unsigned int v1:31; int * v2; };
struct BFu0c_BFu31i_L { unsigned char :0; unsigned int v1:31; long long v2; };
struct BFu0c_BFu31i_S { unsigned char :0; unsigned int v1:31; short v2; };
struct BFu0c_BFu31i_Uc { unsigned char :0; unsigned int v1:31; unsigned char v2; };
struct BFu0c_BFu31i_Ui { unsigned char :0; unsigned int v1:31; unsigned int v2; };
struct BFu0c_BFu31i_Ul { unsigned char :0; unsigned int v1:31; unsigned long long v2; };
struct BFu0c_BFu31i_Us { unsigned char :0; unsigned int v1:31; unsigned short v2; };
struct BFu0c_BFu31i_Vp { unsigned char :0; unsigned int v1:31; void * v2; };
struct BFu0c_BFu31ll { unsigned char :0; unsigned long long v1:31; };
struct BFu0c_BFu31ll_BFu0c { unsigned char :0; unsigned long long v1:31; unsigned char :0; };
struct BFu0c_BFu31ll_BFu0i { unsigned char :0; unsigned long long v1:31; unsigned int :0; };
struct BFu0c_BFu31ll_BFu0ll { unsigned char :0; unsigned long long v1:31; unsigned long long :0; };
struct BFu0c_BFu31ll_BFu0s { unsigned char :0; unsigned long long v1:31; unsigned short :0; };
struct BFu0c_BFu31ll_BFu15i { unsigned char :0; unsigned long long v1:31; unsigned int v2:15; };
struct BFu0c_BFu31ll_BFu15ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:15; };
struct BFu0c_BFu31ll_BFu15s { unsigned char :0; unsigned long long v1:31; unsigned short v2:15; };
struct BFu0c_BFu31ll_BFu16i { unsigned char :0; unsigned long long v1:31; unsigned int v2:16; };
struct BFu0c_BFu31ll_BFu16ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:16; };
struct BFu0c_BFu31ll_BFu16s { unsigned char :0; unsigned long long v1:31; unsigned short v2:16; };
struct BFu0c_BFu31ll_BFu17i { unsigned char :0; unsigned long long v1:31; unsigned int v2:17; };
struct BFu0c_BFu31ll_BFu17ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:17; };
struct BFu0c_BFu31ll_BFu1c { unsigned char :0; unsigned long long v1:31; unsigned char v2:1; };
struct BFu0c_BFu31ll_BFu1i { unsigned char :0; unsigned long long v1:31; unsigned int v2:1; };
struct BFu0c_BFu31ll_BFu1ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:1; };
struct BFu0c_BFu31ll_BFu1s { unsigned char :0; unsigned long long v1:31; unsigned short v2:1; };
struct BFu0c_BFu31ll_BFu31i { unsigned char :0; unsigned long long v1:31; unsigned int v2:31; };
struct BFu0c_BFu31ll_BFu31ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:31; };
struct BFu0c_BFu31ll_BFu32i { unsigned char :0; unsigned long long v1:31; unsigned int v2:32; };
struct BFu0c_BFu31ll_BFu32ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:32; };
struct BFu0c_BFu31ll_BFu33 { unsigned char :0; unsigned long long v1:31; unsigned long long v2:33; };
struct BFu0c_BFu31ll_BFu7c { unsigned char :0; unsigned long long v1:31; unsigned char v2:7; };
struct BFu0c_BFu31ll_BFu7i { unsigned char :0; unsigned long long v1:31; unsigned int v2:7; };
struct BFu0c_BFu31ll_BFu7ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:7; };
struct BFu0c_BFu31ll_BFu7s { unsigned char :0; unsigned long long v1:31; unsigned short v2:7; };
struct BFu0c_BFu31ll_BFu8c { unsigned char :0; unsigned long long v1:31; unsigned char v2:8; };
struct BFu0c_BFu31ll_BFu8i { unsigned char :0; unsigned long long v1:31; unsigned int v2:8; };
struct BFu0c_BFu31ll_BFu8ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:8; };
struct BFu0c_BFu31ll_BFu8s { unsigned char :0; unsigned long long v1:31; unsigned short v2:8; };
struct BFu0c_BFu31ll_BFu9i { unsigned char :0; unsigned long long v1:31; unsigned int v2:9; };
struct BFu0c_BFu31ll_BFu9ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:9; };
struct BFu0c_BFu31ll_BFu9s { unsigned char :0; unsigned long long v1:31; unsigned short v2:9; };
struct BFu0c_BFu31ll_C { unsigned char :0; unsigned long long v1:31; char v2; };
struct BFu0c_BFu31ll_D { unsigned char :0; unsigned long long v1:31; double v2; };
struct BFu0c_BFu31ll_F { unsigned char :0; unsigned long long v1:31; float v2; };
struct BFu0c_BFu31ll_I { unsigned char :0; unsigned long long v1:31; int v2; };
struct BFu0c_BFu31ll_Ip { unsigned char :0; unsigned long long v1:31; int * v2; };
struct BFu0c_BFu31ll_L { unsigned char :0; unsigned long long v1:31; long long v2; };
struct BFu0c_BFu31ll_S { unsigned char :0; unsigned long long v1:31; short v2; };
struct BFu0c_BFu31ll_Uc { unsigned char :0; unsigned long long v1:31; unsigned char v2; };
struct BFu0c_BFu31ll_Ui { unsigned char :0; unsigned long long v1:31; unsigned int v2; };
struct BFu0c_BFu31ll_Ul { unsigned char :0; unsigned long long v1:31; unsigned long long v2; };
struct BFu0c_BFu31ll_Us { unsigned char :0; unsigned long long v1:31; unsigned short v2; };
struct BFu0c_BFu31ll_Vp { unsigned char :0; unsigned long long v1:31; void * v2; };
struct BFu0c_BFu32i { unsigned char :0; unsigned int v1:32; };
struct BFu0c_BFu32i_BFu0c { unsigned char :0; unsigned int v1:32; unsigned char :0; };
struct BFu0c_BFu32i_BFu0i { unsigned char :0; unsigned int v1:32; unsigned int :0; };
struct BFu0c_BFu32i_BFu0ll { unsigned char :0; unsigned int v1:32; unsigned long long :0; };
struct BFu0c_BFu32i_BFu0s { unsigned char :0; unsigned int v1:32; unsigned short :0; };
struct BFu0c_BFu32i_BFu15i { unsigned char :0; unsigned int v1:32; unsigned int v2:15; };
struct BFu0c_BFu32i_BFu15ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:15; };
struct BFu0c_BFu32i_BFu15s { unsigned char :0; unsigned int v1:32; unsigned short v2:15; };
struct BFu0c_BFu32i_BFu16i { unsigned char :0; unsigned int v1:32; unsigned int v2:16; };
struct BFu0c_BFu32i_BFu16ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:16; };
struct BFu0c_BFu32i_BFu16s { unsigned char :0; unsigned int v1:32; unsigned short v2:16; };
struct BFu0c_BFu32i_BFu17i { unsigned char :0; unsigned int v1:32; unsigned int v2:17; };
struct BFu0c_BFu32i_BFu17ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:17; };
struct BFu0c_BFu32i_BFu1c { unsigned char :0; unsigned int v1:32; unsigned char v2:1; };
struct BFu0c_BFu32i_BFu1i { unsigned char :0; unsigned int v1:32; unsigned int v2:1; };
struct BFu0c_BFu32i_BFu1ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:1; };
struct BFu0c_BFu32i_BFu1s { unsigned char :0; unsigned int v1:32; unsigned short v2:1; };
struct BFu0c_BFu32i_BFu31i { unsigned char :0; unsigned int v1:32; unsigned int v2:31; };
struct BFu0c_BFu32i_BFu31ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:31; };
struct BFu0c_BFu32i_BFu32i { unsigned char :0; unsigned int v1:32; unsigned int v2:32; };
struct BFu0c_BFu32i_BFu32ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:32; };
struct BFu0c_BFu32i_BFu33 { unsigned char :0; unsigned int v1:32; unsigned long long v2:33; };
struct BFu0c_BFu32i_BFu7c { unsigned char :0; unsigned int v1:32; unsigned char v2:7; };
struct BFu0c_BFu32i_BFu7i { unsigned char :0; unsigned int v1:32; unsigned int v2:7; };
struct BFu0c_BFu32i_BFu7ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:7; };
struct BFu0c_BFu32i_BFu7s { unsigned char :0; unsigned int v1:32; unsigned short v2:7; };
struct BFu0c_BFu32i_BFu8c { unsigned char :0; unsigned int v1:32; unsigned char v2:8; };
struct BFu0c_BFu32i_BFu8i { unsigned char :0; unsigned int v1:32; unsigned int v2:8; };
struct BFu0c_BFu32i_BFu8ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:8; };
struct BFu0c_BFu32i_BFu8s { unsigned char :0; unsigned int v1:32; unsigned short v2:8; };
struct BFu0c_BFu32i_BFu9i { unsigned char :0; unsigned int v1:32; unsigned int v2:9; };
struct BFu0c_BFu32i_BFu9ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:9; };
struct BFu0c_BFu32i_BFu9s { unsigned char :0; unsigned int v1:32; unsigned short v2:9; };
struct BFu0c_BFu32i_C { unsigned char :0; unsigned int v1:32; char v2; };
struct BFu0c_BFu32i_D { unsigned char :0; unsigned int v1:32; double v2; };
struct BFu0c_BFu32i_F { unsigned char :0; unsigned int v1:32; float v2; };
struct BFu0c_BFu32i_I { unsigned char :0; unsigned int v1:32; int v2; };
struct BFu0c_BFu32i_Ip { unsigned char :0; unsigned int v1:32; int * v2; };
struct BFu0c_BFu32i_L { unsigned char :0; unsigned int v1:32; long long v2; };
struct BFu0c_BFu32i_S { unsigned char :0; unsigned int v1:32; short v2; };
struct BFu0c_BFu32i_Uc { unsigned char :0; unsigned int v1:32; unsigned char v2; };
struct BFu0c_BFu32i_Ui { unsigned char :0; unsigned int v1:32; unsigned int v2; };
struct BFu0c_BFu32i_Ul { unsigned char :0; unsigned int v1:32; unsigned long long v2; };
struct BFu0c_BFu32i_Us { unsigned char :0; unsigned int v1:32; unsigned short v2; };
struct BFu0c_BFu32i_Vp { unsigned char :0; unsigned int v1:32; void * v2; };
struct BFu0c_BFu32ll { unsigned char :0; unsigned long long v1:32; };
struct BFu0c_BFu32ll_BFu0c { unsigned char :0; unsigned long long v1:32; unsigned char :0; };
struct BFu0c_BFu32ll_BFu0i { unsigned char :0; unsigned long long v1:32; unsigned int :0; };
struct BFu0c_BFu32ll_BFu0ll { unsigned char :0; unsigned long long v1:32; unsigned long long :0; };
struct BFu0c_BFu32ll_BFu0s { unsigned char :0; unsigned long long v1:32; unsigned short :0; };
struct BFu0c_BFu32ll_BFu15i { unsigned char :0; unsigned long long v1:32; unsigned int v2:15; };
struct BFu0c_BFu32ll_BFu15ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:15; };
struct BFu0c_BFu32ll_BFu15s { unsigned char :0; unsigned long long v1:32; unsigned short v2:15; };
struct BFu0c_BFu32ll_BFu16i { unsigned char :0; unsigned long long v1:32; unsigned int v2:16; };
struct BFu0c_BFu32ll_BFu16ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:16; };
struct BFu0c_BFu32ll_BFu16s { unsigned char :0; unsigned long long v1:32; unsigned short v2:16; };
struct BFu0c_BFu32ll_BFu17i { unsigned char :0; unsigned long long v1:32; unsigned int v2:17; };
struct BFu0c_BFu32ll_BFu17ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:17; };
struct BFu0c_BFu32ll_BFu1c { unsigned char :0; unsigned long long v1:32; unsigned char v2:1; };
struct BFu0c_BFu32ll_BFu1i { unsigned char :0; unsigned long long v1:32; unsigned int v2:1; };
struct BFu0c_BFu32ll_BFu1ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:1; };
struct BFu0c_BFu32ll_BFu1s { unsigned char :0; unsigned long long v1:32; unsigned short v2:1; };
struct BFu0c_BFu32ll_BFu31i { unsigned char :0; unsigned long long v1:32; unsigned int v2:31; };
struct BFu0c_BFu32ll_BFu31ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:31; };
struct BFu0c_BFu32ll_BFu32i { unsigned char :0; unsigned long long v1:32; unsigned int v2:32; };
struct BFu0c_BFu32ll_BFu32ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:32; };
struct BFu0c_BFu32ll_BFu33 { unsigned char :0; unsigned long long v1:32; unsigned long long v2:33; };
struct BFu0c_BFu32ll_BFu7c { unsigned char :0; unsigned long long v1:32; unsigned char v2:7; };
struct BFu0c_BFu32ll_BFu7i { unsigned char :0; unsigned long long v1:32; unsigned int v2:7; };
struct BFu0c_BFu32ll_BFu7ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:7; };
struct BFu0c_BFu32ll_BFu7s { unsigned char :0; unsigned long long v1:32; unsigned short v2:7; };
struct BFu0c_BFu32ll_BFu8c { unsigned char :0; unsigned long long v1:32; unsigned char v2:8; };
struct BFu0c_BFu32ll_BFu8i { unsigned char :0; unsigned long long v1:32; unsigned int v2:8; };
struct BFu0c_BFu32ll_BFu8ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:8; };
struct BFu0c_BFu32ll_BFu8s { unsigned char :0; unsigned long long v1:32; unsigned short v2:8; };
struct BFu0c_BFu32ll_BFu9i { unsigned char :0; unsigned long long v1:32; unsigned int v2:9; };
struct BFu0c_BFu32ll_BFu9ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:9; };
struct BFu0c_BFu32ll_BFu9s { unsigned char :0; unsigned long long v1:32; unsigned short v2:9; };
struct BFu0c_BFu32ll_C { unsigned char :0; unsigned long long v1:32; char v2; };
struct BFu0c_BFu32ll_D { unsigned char :0; unsigned long long v1:32; double v2; };
struct BFu0c_BFu32ll_F { unsigned char :0; unsigned long long v1:32; float v2; };
struct BFu0c_BFu32ll_I { unsigned char :0; unsigned long long v1:32; int v2; };
struct BFu0c_BFu32ll_Ip { unsigned char :0; unsigned long long v1:32; int * v2; };
struct BFu0c_BFu32ll_L { unsigned char :0; unsigned long long v1:32; long long v2; };
struct BFu0c_BFu32ll_S { unsigned char :0; unsigned long long v1:32; short v2; };
struct BFu0c_BFu32ll_Uc { unsigned char :0; unsigned long long v1:32; unsigned char v2; };
struct BFu0c_BFu32ll_Ui { unsigned char :0; unsigned long long v1:32; unsigned int v2; };
struct BFu0c_BFu32ll_Ul { unsigned char :0; unsigned long long v1:32; unsigned long long v2; };
struct BFu0c_BFu32ll_Us { unsigned char :0; unsigned long long v1:32; unsigned short v2; };
struct BFu0c_BFu32ll_Vp { unsigned char :0; unsigned long long v1:32; void * v2; };
struct BFu0c_BFu33 { unsigned char :0; unsigned long long v1:33; };
struct BFu0c_BFu33_BFu0c { unsigned char :0; unsigned long long v1:33; unsigned char :0; };
struct BFu0c_BFu33_BFu0i { unsigned char :0; unsigned long long v1:33; unsigned int :0; };
struct BFu0c_BFu33_BFu0ll { unsigned char :0; unsigned long long v1:33; unsigned long long :0; };
struct BFu0c_BFu33_BFu0s { unsigned char :0; unsigned long long v1:33; unsigned short :0; };
struct BFu0c_BFu33_BFu15i { unsigned char :0; unsigned long long v1:33; unsigned int v2:15; };
struct BFu0c_BFu33_BFu15ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:15; };
struct BFu0c_BFu33_BFu15s { unsigned char :0; unsigned long long v1:33; unsigned short v2:15; };
struct BFu0c_BFu33_BFu16i { unsigned char :0; unsigned long long v1:33; unsigned int v2:16; };
struct BFu0c_BFu33_BFu16ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:16; };
struct BFu0c_BFu33_BFu16s { unsigned char :0; unsigned long long v1:33; unsigned short v2:16; };
struct BFu0c_BFu33_BFu17i { unsigned char :0; unsigned long long v1:33; unsigned int v2:17; };
struct BFu0c_BFu33_BFu17ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:17; };
struct BFu0c_BFu33_BFu1c { unsigned char :0; unsigned long long v1:33; unsigned char v2:1; };
struct BFu0c_BFu33_BFu1i { unsigned char :0; unsigned long long v1:33; unsigned int v2:1; };
struct BFu0c_BFu33_BFu1ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:1; };
struct BFu0c_BFu33_BFu1s { unsigned char :0; unsigned long long v1:33; unsigned short v2:1; };
struct BFu0c_BFu33_BFu31i { unsigned char :0; unsigned long long v1:33; unsigned int v2:31; };
struct BFu0c_BFu33_BFu31ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:31; };
struct BFu0c_BFu33_BFu32i { unsigned char :0; unsigned long long v1:33; unsigned int v2:32; };
struct BFu0c_BFu33_BFu32ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:32; };
struct BFu0c_BFu33_BFu33 { unsigned char :0; unsigned long long v1:33; unsigned long long v2:33; };
struct BFu0c_BFu33_BFu7c { unsigned char :0; unsigned long long v1:33; unsigned char v2:7; };
struct BFu0c_BFu33_BFu7i { unsigned char :0; unsigned long long v1:33; unsigned int v2:7; };
struct BFu0c_BFu33_BFu7ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:7; };
struct BFu0c_BFu33_BFu7s { unsigned char :0; unsigned long long v1:33; unsigned short v2:7; };
struct BFu0c_BFu33_BFu8c { unsigned char :0; unsigned long long v1:33; unsigned char v2:8; };
struct BFu0c_BFu33_BFu8i { unsigned char :0; unsigned long long v1:33; unsigned int v2:8; };
struct BFu0c_BFu33_BFu8ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:8; };
struct BFu0c_BFu33_BFu8s { unsigned char :0; unsigned long long v1:33; unsigned short v2:8; };
struct BFu0c_BFu33_BFu9i { unsigned char :0; unsigned long long v1:33; unsigned int v2:9; };
struct BFu0c_BFu33_BFu9ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:9; };
struct BFu0c_BFu33_BFu9s { unsigned char :0; unsigned long long v1:33; unsigned short v2:9; };
struct BFu0c_BFu33_C { unsigned char :0; unsigned long long v1:33; char v2; };
struct BFu0c_BFu33_D { unsigned char :0; unsigned long long v1:33; double v2; };
struct BFu0c_BFu33_F { unsigned char :0; unsigned long long v1:33; float v2; };
struct BFu0c_BFu33_I { unsigned char :0; unsigned long long v1:33; int v2; };
struct BFu0c_BFu33_Ip { unsigned char :0; unsigned long long v1:33; int * v2; };
struct BFu0c_BFu33_L { unsigned char :0; unsigned long long v1:33; long long v2; };
struct BFu0c_BFu33_S { unsigned char :0; unsigned long long v1:33; short v2; };
struct BFu0c_BFu33_Uc { unsigned char :0; unsigned long long v1:33; unsigned char v2; };
struct BFu0c_BFu33_Ui { unsigned char :0; unsigned long long v1:33; unsigned int v2; };
struct BFu0c_BFu33_Ul { unsigned char :0; unsigned long long v1:33; unsigned long long v2; };
struct BFu0c_BFu33_Us { unsigned char :0; unsigned long long v1:33; unsigned short v2; };
struct BFu0c_BFu33_Vp { unsigned char :0; unsigned long long v1:33; void * v2; };
struct BFu0c_BFu7c { unsigned char :0; unsigned char v1:7; };
struct BFu0c_BFu7c_BFu0c { unsigned char :0; unsigned char v1:7; unsigned char :0; };
struct BFu0c_BFu7c_BFu0i { unsigned char :0; unsigned char v1:7; unsigned int :0; };
struct BFu0c_BFu7c_BFu0ll { unsigned char :0; unsigned char v1:7; unsigned long long :0; };
struct BFu0c_BFu7c_BFu0s { unsigned char :0; unsigned char v1:7; unsigned short :0; };
struct BFu0c_BFu7c_BFu15i { unsigned char :0; unsigned char v1:7; unsigned int v2:15; };
struct BFu0c_BFu7c_BFu15ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:15; };
struct BFu0c_BFu7c_BFu15s { unsigned char :0; unsigned char v1:7; unsigned short v2:15; };
struct BFu0c_BFu7c_BFu16i { unsigned char :0; unsigned char v1:7; unsigned int v2:16; };
struct BFu0c_BFu7c_BFu16ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:16; };
struct BFu0c_BFu7c_BFu16s { unsigned char :0; unsigned char v1:7; unsigned short v2:16; };
struct BFu0c_BFu7c_BFu17i { unsigned char :0; unsigned char v1:7; unsigned int v2:17; };
struct BFu0c_BFu7c_BFu17ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:17; };
struct BFu0c_BFu7c_BFu1c { unsigned char :0; unsigned char v1:7; unsigned char v2:1; };
struct BFu0c_BFu7c_BFu1i { unsigned char :0; unsigned char v1:7; unsigned int v2:1; };
struct BFu0c_BFu7c_BFu1ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:1; };
struct BFu0c_BFu7c_BFu1s { unsigned char :0; unsigned char v1:7; unsigned short v2:1; };
struct BFu0c_BFu7c_BFu31i { unsigned char :0; unsigned char v1:7; unsigned int v2:31; };
struct BFu0c_BFu7c_BFu31ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:31; };
struct BFu0c_BFu7c_BFu32i { unsigned char :0; unsigned char v1:7; unsigned int v2:32; };
struct BFu0c_BFu7c_BFu32ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:32; };
struct BFu0c_BFu7c_BFu33 { unsigned char :0; unsigned char v1:7; unsigned long long v2:33; };
struct BFu0c_BFu7c_BFu7c { unsigned char :0; unsigned char v1:7; unsigned char v2:7; };
struct BFu0c_BFu7c_BFu7i { unsigned char :0; unsigned char v1:7; unsigned int v2:7; };
struct BFu0c_BFu7c_BFu7ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:7; };
struct BFu0c_BFu7c_BFu7s { unsigned char :0; unsigned char v1:7; unsigned short v2:7; };
struct BFu0c_BFu7c_BFu8c { unsigned char :0; unsigned char v1:7; unsigned char v2:8; };
struct BFu0c_BFu7c_BFu8i { unsigned char :0; unsigned char v1:7; unsigned int v2:8; };
struct BFu0c_BFu7c_BFu8ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:8; };
struct BFu0c_BFu7c_BFu8s { unsigned char :0; unsigned char v1:7; unsigned short v2:8; };
struct BFu0c_BFu7c_BFu9i { unsigned char :0; unsigned char v1:7; unsigned int v2:9; };
struct BFu0c_BFu7c_BFu9ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:9; };
struct BFu0c_BFu7c_BFu9s { unsigned char :0; unsigned char v1:7; unsigned short v2:9; };
struct BFu0c_BFu7c_C { unsigned char :0; unsigned char v1:7; char v2; };
struct BFu0c_BFu7c_D { unsigned char :0; unsigned char v1:7; double v2; };
struct BFu0c_BFu7c_F { unsigned char :0; unsigned char v1:7; float v2; };
struct BFu0c_BFu7c_I { unsigned char :0; unsigned char v1:7; int v2; };
struct BFu0c_BFu7c_Ip { unsigned char :0; unsigned char v1:7; int * v2; };


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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_BFs0ll_BFu0s_BFs0c_BFs0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0c_BFs0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0c_BFs0s, BFs0ll_BFu0s_BFs0c_BFs0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0c_BFu0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0c_BFu0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0c_BFu0c, BFs0ll_BFu0s_BFs0c_BFu0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0c_BFu0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0c_BFu0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0c_BFu0i, BFs0ll_BFu0s_BFs0c_BFu0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0c_BFu0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0c_BFu0ll, BFs0ll_BFu0s_BFs0c_BFu0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0c_BFu0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0c_BFu0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0c_BFu0s, BFs0ll_BFu0s_BFs0c_BFu0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0i, BFs0ll_BFu0s_BFs0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0i_BFs0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0i_BFs0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0i_BFs0c, BFs0ll_BFu0s_BFs0i_BFs0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0i_BFs0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0i_BFs0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0i_BFs0i, BFs0ll_BFu0s_BFs0i_BFs0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0i_BFs0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0i_BFs0ll, BFs0ll_BFu0s_BFs0i_BFs0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0i_BFs0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0i_BFs0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0i_BFs0s, BFs0ll_BFu0s_BFs0i_BFs0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0i_BFu0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0i_BFu0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0i_BFu0c, BFs0ll_BFu0s_BFs0i_BFu0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0i_BFu0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0i_BFu0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0i_BFu0i, BFs0ll_BFu0s_BFs0i_BFu0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0i_BFu0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0i_BFu0ll, BFs0ll_BFu0s_BFs0i_BFu0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0i_BFu0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0i_BFu0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0i_BFu0s, BFs0ll_BFu0s_BFs0i_BFu0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0ll, BFs0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0ll_BFs0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0ll_BFs0c, BFs0ll_BFu0s_BFs0ll_BFs0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0ll_BFs0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0ll_BFs0i, BFs0ll_BFu0s_BFs0ll_BFs0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0ll_BFs0ll, BFs0ll_BFu0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0ll_BFs0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0ll_BFs0s, BFs0ll_BFu0s_BFs0ll_BFs0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0ll_BFu0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0ll_BFu0c, BFs0ll_BFu0s_BFs0ll_BFu0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0ll_BFu0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0ll_BFu0i, BFs0ll_BFu0s_BFs0ll_BFu0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0ll_BFu0ll, BFs0ll_BFu0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0ll_BFu0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0ll_BFu0s, BFs0ll_BFu0s_BFs0ll_BFu0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0s, BFs0ll_BFu0s_BFs0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0s_BFs0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0s_BFs0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0s_BFs0c, BFs0ll_BFu0s_BFs0s_BFs0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0s_BFs0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0s_BFs0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0s_BFs0i, BFs0ll_BFu0s_BFs0s_BFs0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0s_BFs0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0s_BFs0ll, BFs0ll_BFu0s_BFs0s_BFs0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0s_BFs0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0s_BFs0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0s_BFs0s, BFs0ll_BFu0s_BFs0s_BFs0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0s_BFu0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0s_BFu0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0s_BFu0c, BFs0ll_BFu0s_BFs0s_BFu0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0s_BFu0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0s_BFu0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0s_BFu0i, BFs0ll_BFu0s_BFs0s_BFu0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0s_BFu0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0s_BFu0ll, BFs0ll_BFu0s_BFs0s_BFu0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFs0s_BFu0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFs0s_BFu0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFs0s_BFu0s, BFs0ll_BFu0s_BFs0s_BFu0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0c, BFs0ll_BFu0s_BFu0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0c_BFs0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0c_BFs0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0c_BFs0c, BFs0ll_BFu0s_BFu0c_BFs0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0c_BFs0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0c_BFs0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0c_BFs0i, BFs0ll_BFu0s_BFu0c_BFs0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0c_BFs0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0c_BFs0ll, BFs0ll_BFu0s_BFu0c_BFs0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0c_BFs0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0c_BFs0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0c_BFs0s, BFs0ll_BFu0s_BFu0c_BFs0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0c_BFu0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0c_BFu0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0c_BFu0c, BFs0ll_BFu0s_BFu0c_BFu0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0c_BFu0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0c_BFu0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0c_BFu0i, BFs0ll_BFu0s_BFu0c_BFu0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0c_BFu0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0c_BFu0ll, BFs0ll_BFu0s_BFu0c_BFu0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0c_BFu0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0c_BFu0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0c_BFu0s, BFs0ll_BFu0s_BFu0c_BFu0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0i, BFs0ll_BFu0s_BFu0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0i_BFs0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0i_BFs0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0i_BFs0c, BFs0ll_BFu0s_BFu0i_BFs0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0i_BFs0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0i_BFs0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0i_BFs0i, BFs0ll_BFu0s_BFu0i_BFs0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0i_BFs0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0i_BFs0ll, BFs0ll_BFu0s_BFu0i_BFs0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0i_BFs0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0i_BFs0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0i_BFs0s, BFs0ll_BFu0s_BFu0i_BFs0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0i_BFu0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0i_BFu0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0i_BFu0c, BFs0ll_BFu0s_BFu0i_BFu0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0i_BFu0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0i_BFu0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0i_BFu0i, BFs0ll_BFu0s_BFu0i_BFu0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0i_BFu0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0i_BFu0ll, BFs0ll_BFu0s_BFu0i_BFu0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0i_BFu0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0i_BFu0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0i_BFu0s, BFs0ll_BFu0s_BFu0i_BFu0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0ll, BFs0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0ll_BFs0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0ll_BFs0c, BFs0ll_BFu0s_BFu0ll_BFs0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0ll_BFs0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0ll_BFs0i, BFs0ll_BFu0s_BFu0ll_BFs0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0ll_BFs0ll, BFs0ll_BFu0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0ll_BFs0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0ll_BFs0s, BFs0ll_BFu0s_BFu0ll_BFs0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0ll_BFu0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0ll_BFu0c, BFs0ll_BFu0s_BFu0ll_BFu0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0ll_BFu0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0ll_BFu0i, BFs0ll_BFu0s_BFu0ll_BFu0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0ll_BFu0ll, BFs0ll_BFu0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0ll_BFu0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0ll_BFu0s, BFs0ll_BFu0s_BFu0ll_BFu0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0s, BFs0ll_BFu0s_BFu0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0s_BFs0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0s_BFs0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0s_BFs0c, BFs0ll_BFu0s_BFu0s_BFs0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0s_BFs0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0s_BFs0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0s_BFs0i, BFs0ll_BFu0s_BFu0s_BFs0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0s_BFs0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0s_BFs0ll, BFs0ll_BFu0s_BFu0s_BFs0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0s_BFs0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0s_BFs0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0s_BFs0s, BFs0ll_BFu0s_BFu0s_BFs0s)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0s_BFu0c()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0s_BFu0c");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0s_BFu0c, BFs0ll_BFu0s_BFu0s_BFu0c)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0s_BFu0i()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0s_BFu0i");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0s_BFu0i, BFs0ll_BFu0s_BFu0s_BFu0i)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0s_BFu0ll");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0s_BFu0ll, BFs0ll_BFu0s_BFu0s_BFu0ll)
//============================================================================



static void Test_BFs0ll_BFu0s_BFu0s_BFu0s()
{
  {
    init_simple_test("BFs0ll_BFu0s_BFu0s_BFu0s");
    static STRUCT_IF_C BFs0ll_BFu0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0ll_BFu0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0ll_BFu0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0ll_BFu0s_BFu0s_BFu0s, BFs0ll_BFu0s_BFu0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c, BFs0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0c, BFs0s_BFs0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0c_BFs0c, BFs0s_BFs0c_BFs0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0c_BFs0i, BFs0s_BFs0c_BFs0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0c_BFs0ll, BFs0s_BFs0c_BFs0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0c_BFs0s, BFs0s_BFs0c_BFs0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0c_BFu0c, BFs0s_BFs0c_BFs0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0c_BFu0i, BFs0s_BFs0c_BFs0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0c_BFu0ll, BFs0s_BFs0c_BFs0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0c_BFu0s, BFs0s_BFs0c_BFs0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0i, BFs0s_BFs0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0i_BFs0c, BFs0s_BFs0c_BFs0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0i_BFs0i, BFs0s_BFs0c_BFs0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0i_BFs0ll, BFs0s_BFs0c_BFs0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0i_BFs0s, BFs0s_BFs0c_BFs0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0i_BFu0c, BFs0s_BFs0c_BFs0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0i_BFu0i, BFs0s_BFs0c_BFs0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0i_BFu0ll, BFs0s_BFs0c_BFs0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0i_BFu0s, BFs0s_BFs0c_BFs0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0ll, BFs0s_BFs0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0ll_BFs0c, BFs0s_BFs0c_BFs0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0ll_BFs0i, BFs0s_BFs0c_BFs0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0ll_BFs0ll, BFs0s_BFs0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0ll_BFs0s, BFs0s_BFs0c_BFs0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0ll_BFu0c, BFs0s_BFs0c_BFs0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0ll_BFu0i, BFs0s_BFs0c_BFs0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0ll_BFu0ll, BFs0s_BFs0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0ll_BFu0s, BFs0s_BFs0c_BFs0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0s, BFs0s_BFs0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0s_BFs0c, BFs0s_BFs0c_BFs0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0s_BFs0i, BFs0s_BFs0c_BFs0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0s_BFs0ll, BFs0s_BFs0c_BFs0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0s_BFs0s, BFs0s_BFs0c_BFs0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0s_BFu0c, BFs0s_BFs0c_BFs0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0s_BFu0i, BFs0s_BFs0c_BFs0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0s_BFu0ll, BFs0s_BFs0c_BFs0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFs0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFs0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFs0s_BFu0s, BFs0s_BFs0c_BFs0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0c, BFs0s_BFs0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0c_BFs0c, BFs0s_BFs0c_BFu0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0c_BFs0i, BFs0s_BFs0c_BFu0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0c_BFs0ll, BFs0s_BFs0c_BFu0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0c_BFs0s, BFs0s_BFs0c_BFu0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0c_BFu0c, BFs0s_BFs0c_BFu0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0c_BFu0i, BFs0s_BFs0c_BFu0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0c_BFu0ll, BFs0s_BFs0c_BFu0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0c_BFu0s, BFs0s_BFs0c_BFu0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0i, BFs0s_BFs0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0i_BFs0c, BFs0s_BFs0c_BFu0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0i_BFs0i, BFs0s_BFs0c_BFu0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0i_BFs0ll, BFs0s_BFs0c_BFu0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0i_BFs0s, BFs0s_BFs0c_BFu0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0i_BFu0c, BFs0s_BFs0c_BFu0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0i_BFu0i, BFs0s_BFs0c_BFu0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0i_BFu0ll, BFs0s_BFs0c_BFu0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0i_BFu0s, BFs0s_BFs0c_BFu0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0ll, BFs0s_BFs0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0ll_BFs0c, BFs0s_BFs0c_BFu0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0ll_BFs0i, BFs0s_BFs0c_BFu0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0ll_BFs0ll, BFs0s_BFs0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0ll_BFs0s, BFs0s_BFs0c_BFu0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0ll_BFu0c, BFs0s_BFs0c_BFu0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0ll_BFu0i, BFs0s_BFs0c_BFu0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0ll_BFu0ll, BFs0s_BFs0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0ll_BFu0s, BFs0s_BFs0c_BFu0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0s, BFs0s_BFs0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0s_BFs0c, BFs0s_BFs0c_BFu0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0s_BFs0i, BFs0s_BFs0c_BFu0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0s_BFs0ll, BFs0s_BFs0c_BFu0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0s_BFs0s, BFs0s_BFs0c_BFu0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0s_BFu0c, BFs0s_BFs0c_BFu0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0s_BFu0i, BFs0s_BFs0c_BFu0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0s_BFu0ll, BFs0s_BFs0c_BFu0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0c_BFu0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0c_BFu0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0c_BFu0s_BFu0s, BFs0s_BFs0c_BFu0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i, BFs0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0c, BFs0s_BFs0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0c_BFs0c, BFs0s_BFs0i_BFs0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0c_BFs0i, BFs0s_BFs0i_BFs0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0c_BFs0ll, BFs0s_BFs0i_BFs0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0c_BFs0s, BFs0s_BFs0i_BFs0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0c_BFu0c, BFs0s_BFs0i_BFs0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0c_BFu0i, BFs0s_BFs0i_BFs0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0c_BFu0ll, BFs0s_BFs0i_BFs0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0c_BFu0s, BFs0s_BFs0i_BFs0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0i, BFs0s_BFs0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0i_BFs0c, BFs0s_BFs0i_BFs0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0i_BFs0i, BFs0s_BFs0i_BFs0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0i_BFs0ll, BFs0s_BFs0i_BFs0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0i_BFs0s, BFs0s_BFs0i_BFs0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0i_BFu0c, BFs0s_BFs0i_BFs0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0i_BFu0i, BFs0s_BFs0i_BFs0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0i_BFu0ll, BFs0s_BFs0i_BFs0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0i_BFu0s, BFs0s_BFs0i_BFs0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0ll, BFs0s_BFs0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0ll_BFs0c, BFs0s_BFs0i_BFs0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0ll_BFs0i, BFs0s_BFs0i_BFs0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0ll_BFs0ll, BFs0s_BFs0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0ll_BFs0s, BFs0s_BFs0i_BFs0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0ll_BFu0c, BFs0s_BFs0i_BFs0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0ll_BFu0i, BFs0s_BFs0i_BFs0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0ll_BFu0ll, BFs0s_BFs0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0ll_BFu0s, BFs0s_BFs0i_BFs0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0s, BFs0s_BFs0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0s_BFs0c, BFs0s_BFs0i_BFs0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0s_BFs0i, BFs0s_BFs0i_BFs0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0s_BFs0ll, BFs0s_BFs0i_BFs0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0s_BFs0s, BFs0s_BFs0i_BFs0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0s_BFu0c, BFs0s_BFs0i_BFs0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0s_BFu0i, BFs0s_BFs0i_BFs0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0s_BFu0ll, BFs0s_BFs0i_BFs0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFs0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFs0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFs0s_BFu0s, BFs0s_BFs0i_BFs0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0c, BFs0s_BFs0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0c_BFs0c, BFs0s_BFs0i_BFu0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0c_BFs0i, BFs0s_BFs0i_BFu0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0c_BFs0ll, BFs0s_BFs0i_BFu0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0c_BFs0s, BFs0s_BFs0i_BFu0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0c_BFu0c, BFs0s_BFs0i_BFu0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0c_BFu0i, BFs0s_BFs0i_BFu0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0c_BFu0ll, BFs0s_BFs0i_BFu0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0c_BFu0s, BFs0s_BFs0i_BFu0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0i, BFs0s_BFs0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0i_BFs0c, BFs0s_BFs0i_BFu0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0i_BFs0i, BFs0s_BFs0i_BFu0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0i_BFs0ll, BFs0s_BFs0i_BFu0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0i_BFs0s, BFs0s_BFs0i_BFu0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0i_BFu0c, BFs0s_BFs0i_BFu0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0i_BFu0i, BFs0s_BFs0i_BFu0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0i_BFu0ll, BFs0s_BFs0i_BFu0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0i_BFu0s, BFs0s_BFs0i_BFu0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0ll, BFs0s_BFs0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0ll_BFs0c, BFs0s_BFs0i_BFu0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0ll_BFs0i, BFs0s_BFs0i_BFu0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0ll_BFs0ll, BFs0s_BFs0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0ll_BFs0s, BFs0s_BFs0i_BFu0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0ll_BFu0c, BFs0s_BFs0i_BFu0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0ll_BFu0i, BFs0s_BFs0i_BFu0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0ll_BFu0ll, BFs0s_BFs0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0ll_BFu0s, BFs0s_BFs0i_BFu0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0s, BFs0s_BFs0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0s_BFs0c, BFs0s_BFs0i_BFu0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0s_BFs0i, BFs0s_BFs0i_BFu0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0s_BFs0ll, BFs0s_BFs0i_BFu0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0s_BFs0s, BFs0s_BFs0i_BFu0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0s_BFu0c, BFs0s_BFs0i_BFu0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0s_BFu0i, BFs0s_BFs0i_BFu0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0s_BFu0ll, BFs0s_BFs0i_BFu0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0i_BFu0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0i_BFu0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0i_BFu0s_BFu0s, BFs0s_BFs0i_BFu0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll, BFs0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0c, BFs0s_BFs0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0c_BFs0c, BFs0s_BFs0ll_BFs0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0c_BFs0i, BFs0s_BFs0ll_BFs0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0c_BFs0ll, BFs0s_BFs0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0c_BFs0s, BFs0s_BFs0ll_BFs0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0c_BFu0c, BFs0s_BFs0ll_BFs0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0c_BFu0i, BFs0s_BFs0ll_BFs0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0c_BFu0ll, BFs0s_BFs0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0c_BFu0s, BFs0s_BFs0ll_BFs0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0i, BFs0s_BFs0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0i_BFs0c, BFs0s_BFs0ll_BFs0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0i_BFs0i, BFs0s_BFs0ll_BFs0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0i_BFs0ll, BFs0s_BFs0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0i_BFs0s, BFs0s_BFs0ll_BFs0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0i_BFu0c, BFs0s_BFs0ll_BFs0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0i_BFu0i, BFs0s_BFs0ll_BFs0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0i_BFu0ll, BFs0s_BFs0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0i_BFu0s, BFs0s_BFs0ll_BFs0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0ll, BFs0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0ll_BFs0c, BFs0s_BFs0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0ll_BFs0i, BFs0s_BFs0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0ll_BFs0ll, BFs0s_BFs0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0ll_BFs0s, BFs0s_BFs0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0ll_BFu0c, BFs0s_BFs0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0ll_BFu0i, BFs0s_BFs0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0ll_BFu0ll, BFs0s_BFs0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0ll_BFu0s, BFs0s_BFs0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0s, BFs0s_BFs0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0s_BFs0c, BFs0s_BFs0ll_BFs0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0s_BFs0i, BFs0s_BFs0ll_BFs0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0s_BFs0ll, BFs0s_BFs0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0s_BFs0s, BFs0s_BFs0ll_BFs0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0s_BFu0c, BFs0s_BFs0ll_BFs0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0s_BFu0i, BFs0s_BFs0ll_BFs0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0s_BFu0ll, BFs0s_BFs0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFs0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFs0s_BFu0s, BFs0s_BFs0ll_BFs0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0c, BFs0s_BFs0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0c_BFs0c, BFs0s_BFs0ll_BFu0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0c_BFs0i, BFs0s_BFs0ll_BFu0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0c_BFs0ll, BFs0s_BFs0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0c_BFs0s, BFs0s_BFs0ll_BFu0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0c_BFu0c, BFs0s_BFs0ll_BFu0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0c_BFu0i, BFs0s_BFs0ll_BFu0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0c_BFu0ll, BFs0s_BFs0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0c_BFu0s, BFs0s_BFs0ll_BFu0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0i, BFs0s_BFs0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0i_BFs0c, BFs0s_BFs0ll_BFu0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0i_BFs0i, BFs0s_BFs0ll_BFu0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0i_BFs0ll, BFs0s_BFs0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0i_BFs0s, BFs0s_BFs0ll_BFu0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0i_BFu0c, BFs0s_BFs0ll_BFu0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0i_BFu0i, BFs0s_BFs0ll_BFu0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0i_BFu0ll, BFs0s_BFs0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0i_BFu0s, BFs0s_BFs0ll_BFu0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0ll, BFs0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0ll_BFs0c, BFs0s_BFs0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0ll_BFs0i, BFs0s_BFs0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0ll_BFs0ll, BFs0s_BFs0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0ll_BFs0s, BFs0s_BFs0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0ll_BFu0c, BFs0s_BFs0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0ll_BFu0i, BFs0s_BFs0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0ll_BFu0ll, BFs0s_BFs0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0ll_BFu0s, BFs0s_BFs0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0s, BFs0s_BFs0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0s_BFs0c, BFs0s_BFs0ll_BFu0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0s_BFs0i, BFs0s_BFs0ll_BFu0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0s_BFs0ll, BFs0s_BFs0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0s_BFs0s, BFs0s_BFs0ll_BFu0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0s_BFu0c, BFs0s_BFs0ll_BFu0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0s_BFu0i, BFs0s_BFs0ll_BFu0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0s_BFu0ll, BFs0s_BFs0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0ll_BFu0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0ll_BFu0s_BFu0s, BFs0s_BFs0ll_BFu0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s, BFs0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0c, BFs0s_BFs0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0c_BFs0c, BFs0s_BFs0s_BFs0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0c_BFs0i, BFs0s_BFs0s_BFs0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0c_BFs0ll, BFs0s_BFs0s_BFs0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0c_BFs0s, BFs0s_BFs0s_BFs0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0c_BFu0c, BFs0s_BFs0s_BFs0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0c_BFu0i, BFs0s_BFs0s_BFs0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0c_BFu0ll, BFs0s_BFs0s_BFs0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0c_BFu0s, BFs0s_BFs0s_BFs0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0i, BFs0s_BFs0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0i_BFs0c, BFs0s_BFs0s_BFs0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0i_BFs0i, BFs0s_BFs0s_BFs0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0i_BFs0ll, BFs0s_BFs0s_BFs0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0i_BFs0s, BFs0s_BFs0s_BFs0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0i_BFu0c, BFs0s_BFs0s_BFs0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0i_BFu0i, BFs0s_BFs0s_BFs0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0i_BFu0ll, BFs0s_BFs0s_BFs0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0i_BFu0s, BFs0s_BFs0s_BFs0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0ll, BFs0s_BFs0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0ll_BFs0c, BFs0s_BFs0s_BFs0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0ll_BFs0i, BFs0s_BFs0s_BFs0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0ll_BFs0ll, BFs0s_BFs0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0ll_BFs0s, BFs0s_BFs0s_BFs0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0ll_BFu0c, BFs0s_BFs0s_BFs0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0ll_BFu0i, BFs0s_BFs0s_BFs0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0ll_BFu0ll, BFs0s_BFs0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0ll_BFu0s, BFs0s_BFs0s_BFs0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0s, BFs0s_BFs0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0s_BFs0c, BFs0s_BFs0s_BFs0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0s_BFs0i, BFs0s_BFs0s_BFs0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0s_BFs0ll, BFs0s_BFs0s_BFs0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0s_BFs0s, BFs0s_BFs0s_BFs0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0s_BFu0c, BFs0s_BFs0s_BFs0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0s_BFu0i, BFs0s_BFs0s_BFs0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0s_BFu0ll, BFs0s_BFs0s_BFs0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFs0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFs0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFs0s_BFu0s, BFs0s_BFs0s_BFs0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0c, BFs0s_BFs0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0c_BFs0c, BFs0s_BFs0s_BFu0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0c_BFs0i, BFs0s_BFs0s_BFu0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0c_BFs0ll, BFs0s_BFs0s_BFu0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0c_BFs0s, BFs0s_BFs0s_BFu0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0c_BFu0c, BFs0s_BFs0s_BFu0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0c_BFu0i, BFs0s_BFs0s_BFu0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0c_BFu0ll, BFs0s_BFs0s_BFu0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0c_BFu0s, BFs0s_BFs0s_BFu0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0i, BFs0s_BFs0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0i_BFs0c, BFs0s_BFs0s_BFu0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0i_BFs0i, BFs0s_BFs0s_BFu0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0i_BFs0ll, BFs0s_BFs0s_BFu0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0i_BFs0s, BFs0s_BFs0s_BFu0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0i_BFu0c, BFs0s_BFs0s_BFu0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0i_BFu0i, BFs0s_BFs0s_BFu0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0i_BFu0ll, BFs0s_BFs0s_BFu0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0i_BFu0s, BFs0s_BFs0s_BFu0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0ll, BFs0s_BFs0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0ll_BFs0c, BFs0s_BFs0s_BFu0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0ll_BFs0i, BFs0s_BFs0s_BFu0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0ll_BFs0ll, BFs0s_BFs0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0ll_BFs0s, BFs0s_BFs0s_BFu0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0ll_BFu0c, BFs0s_BFs0s_BFu0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0ll_BFu0i, BFs0s_BFs0s_BFu0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0ll_BFu0ll, BFs0s_BFs0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0ll_BFu0s, BFs0s_BFs0s_BFu0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0s, BFs0s_BFs0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0s_BFs0c, BFs0s_BFs0s_BFu0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0s_BFs0i, BFs0s_BFs0s_BFu0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0s_BFs0ll, BFs0s_BFs0s_BFu0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0s_BFs0s, BFs0s_BFs0s_BFu0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0s_BFu0c, BFs0s_BFs0s_BFu0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0s_BFu0i, BFs0s_BFs0s_BFu0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0s_BFu0ll, BFs0s_BFs0s_BFu0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFs0s_BFu0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFs0s_BFu0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFs0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFs0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFs0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFs0s_BFu0s_BFu0s, BFs0s_BFs0s_BFu0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c, BFs0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0c, BFs0s_BFu0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0c_BFs0c, BFs0s_BFu0c_BFs0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0c_BFs0i, BFs0s_BFu0c_BFs0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0c_BFs0ll, BFs0s_BFu0c_BFs0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0c_BFs0s, BFs0s_BFu0c_BFs0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0c_BFu0c, BFs0s_BFu0c_BFs0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0c_BFu0i, BFs0s_BFu0c_BFs0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0c_BFu0ll, BFs0s_BFu0c_BFs0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0c_BFu0s, BFs0s_BFu0c_BFs0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0i, BFs0s_BFu0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0i_BFs0c, BFs0s_BFu0c_BFs0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0i_BFs0i, BFs0s_BFu0c_BFs0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0i_BFs0ll, BFs0s_BFu0c_BFs0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0i_BFs0s, BFs0s_BFu0c_BFs0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0i_BFu0c, BFs0s_BFu0c_BFs0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0i_BFu0i, BFs0s_BFu0c_BFs0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0i_BFu0ll, BFs0s_BFu0c_BFs0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0i_BFu0s, BFs0s_BFu0c_BFs0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0ll, BFs0s_BFu0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0ll_BFs0c, BFs0s_BFu0c_BFs0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0ll_BFs0i, BFs0s_BFu0c_BFs0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0ll_BFs0ll, BFs0s_BFu0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0ll_BFs0s, BFs0s_BFu0c_BFs0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0ll_BFu0c, BFs0s_BFu0c_BFs0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0ll_BFu0i, BFs0s_BFu0c_BFs0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0ll_BFu0ll, BFs0s_BFu0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0ll_BFu0s, BFs0s_BFu0c_BFs0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0s, BFs0s_BFu0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0s_BFs0c, BFs0s_BFu0c_BFs0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0s_BFs0i, BFs0s_BFu0c_BFs0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0s_BFs0ll, BFs0s_BFu0c_BFs0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0s_BFs0s, BFs0s_BFu0c_BFs0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0s_BFu0c, BFs0s_BFu0c_BFs0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0s_BFu0i, BFs0s_BFu0c_BFs0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0s_BFu0ll, BFs0s_BFu0c_BFs0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFs0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFs0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFs0s_BFu0s, BFs0s_BFu0c_BFs0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0c, BFs0s_BFu0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0c_BFs0c, BFs0s_BFu0c_BFu0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0c_BFs0i, BFs0s_BFu0c_BFu0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0c_BFs0ll, BFs0s_BFu0c_BFu0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0c_BFs0s, BFs0s_BFu0c_BFu0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0c_BFu0c, BFs0s_BFu0c_BFu0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0c_BFu0i, BFs0s_BFu0c_BFu0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0c_BFu0ll, BFs0s_BFu0c_BFu0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0c_BFu0s, BFs0s_BFu0c_BFu0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0i, BFs0s_BFu0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0i_BFs0c, BFs0s_BFu0c_BFu0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0i_BFs0i, BFs0s_BFu0c_BFu0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0i_BFs0ll, BFs0s_BFu0c_BFu0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0i_BFs0s, BFs0s_BFu0c_BFu0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0i_BFu0c, BFs0s_BFu0c_BFu0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0i_BFu0i, BFs0s_BFu0c_BFu0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0i_BFu0ll, BFs0s_BFu0c_BFu0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0i_BFu0s, BFs0s_BFu0c_BFu0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0ll, BFs0s_BFu0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0ll_BFs0c, BFs0s_BFu0c_BFu0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0ll_BFs0i, BFs0s_BFu0c_BFu0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0ll_BFs0ll, BFs0s_BFu0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0ll_BFs0s, BFs0s_BFu0c_BFu0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0ll_BFu0c, BFs0s_BFu0c_BFu0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0ll_BFu0i, BFs0s_BFu0c_BFu0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0ll_BFu0ll, BFs0s_BFu0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0ll_BFu0s, BFs0s_BFu0c_BFu0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0s, BFs0s_BFu0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0s_BFs0c, BFs0s_BFu0c_BFu0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0s_BFs0i, BFs0s_BFu0c_BFu0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0s_BFs0ll, BFs0s_BFu0c_BFu0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0s_BFs0s, BFs0s_BFu0c_BFu0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0s_BFu0c, BFs0s_BFu0c_BFu0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0s_BFu0i, BFs0s_BFu0c_BFu0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0s_BFu0ll, BFs0s_BFu0c_BFu0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0c_BFu0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0c_BFu0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0c_BFu0s_BFu0s, BFs0s_BFu0c_BFu0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i, BFs0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0c, BFs0s_BFu0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0c_BFs0c, BFs0s_BFu0i_BFs0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0c_BFs0i, BFs0s_BFu0i_BFs0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0c_BFs0ll, BFs0s_BFu0i_BFs0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0c_BFs0s, BFs0s_BFu0i_BFs0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0c_BFu0c, BFs0s_BFu0i_BFs0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0c_BFu0i, BFs0s_BFu0i_BFs0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0c_BFu0ll, BFs0s_BFu0i_BFs0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0c_BFu0s, BFs0s_BFu0i_BFs0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0i, BFs0s_BFu0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0i_BFs0c, BFs0s_BFu0i_BFs0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0i_BFs0i, BFs0s_BFu0i_BFs0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0i_BFs0ll, BFs0s_BFu0i_BFs0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0i_BFs0s, BFs0s_BFu0i_BFs0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0i_BFu0c, BFs0s_BFu0i_BFs0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0i_BFu0i, BFs0s_BFu0i_BFs0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0i_BFu0ll, BFs0s_BFu0i_BFs0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0i_BFu0s, BFs0s_BFu0i_BFs0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0ll, BFs0s_BFu0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0ll_BFs0c, BFs0s_BFu0i_BFs0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0ll_BFs0i, BFs0s_BFu0i_BFs0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0ll_BFs0ll, BFs0s_BFu0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0ll_BFs0s, BFs0s_BFu0i_BFs0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0ll_BFu0c, BFs0s_BFu0i_BFs0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0ll_BFu0i, BFs0s_BFu0i_BFs0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0ll_BFu0ll, BFs0s_BFu0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0ll_BFu0s, BFs0s_BFu0i_BFs0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0s, BFs0s_BFu0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0s_BFs0c, BFs0s_BFu0i_BFs0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0s_BFs0i, BFs0s_BFu0i_BFs0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0s_BFs0ll, BFs0s_BFu0i_BFs0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0s_BFs0s, BFs0s_BFu0i_BFs0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0s_BFu0c, BFs0s_BFu0i_BFs0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0s_BFu0i, BFs0s_BFu0i_BFs0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0s_BFu0ll, BFs0s_BFu0i_BFs0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFs0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFs0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFs0s_BFu0s, BFs0s_BFu0i_BFs0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0c, BFs0s_BFu0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0c_BFs0c, BFs0s_BFu0i_BFu0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0c_BFs0i, BFs0s_BFu0i_BFu0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0c_BFs0ll, BFs0s_BFu0i_BFu0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0c_BFs0s, BFs0s_BFu0i_BFu0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0c_BFu0c, BFs0s_BFu0i_BFu0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0c_BFu0i, BFs0s_BFu0i_BFu0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0c_BFu0ll, BFs0s_BFu0i_BFu0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0c_BFu0s, BFs0s_BFu0i_BFu0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0i, BFs0s_BFu0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0i_BFs0c, BFs0s_BFu0i_BFu0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0i_BFs0i, BFs0s_BFu0i_BFu0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0i_BFs0ll, BFs0s_BFu0i_BFu0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0i_BFs0s, BFs0s_BFu0i_BFu0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0i_BFu0c, BFs0s_BFu0i_BFu0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0i_BFu0i, BFs0s_BFu0i_BFu0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0i_BFu0ll, BFs0s_BFu0i_BFu0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0i_BFu0s, BFs0s_BFu0i_BFu0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0ll, BFs0s_BFu0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0ll_BFs0c, BFs0s_BFu0i_BFu0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0ll_BFs0i, BFs0s_BFu0i_BFu0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0ll_BFs0ll, BFs0s_BFu0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0ll_BFs0s, BFs0s_BFu0i_BFu0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0ll_BFu0c, BFs0s_BFu0i_BFu0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0ll_BFu0i, BFs0s_BFu0i_BFu0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0ll_BFu0ll, BFs0s_BFu0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0ll_BFu0s, BFs0s_BFu0i_BFu0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0s, BFs0s_BFu0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0s_BFs0c, BFs0s_BFu0i_BFu0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0s_BFs0i, BFs0s_BFu0i_BFu0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0s_BFs0ll, BFs0s_BFu0i_BFu0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0s_BFs0s, BFs0s_BFu0i_BFu0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0s_BFu0c, BFs0s_BFu0i_BFu0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0s_BFu0i, BFs0s_BFu0i_BFu0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0s_BFu0ll, BFs0s_BFu0i_BFu0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0i_BFu0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0i_BFu0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0i_BFu0s_BFu0s, BFs0s_BFu0i_BFu0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll, BFs0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0c, BFs0s_BFu0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0c_BFs0c, BFs0s_BFu0ll_BFs0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0c_BFs0i, BFs0s_BFu0ll_BFs0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0c_BFs0ll, BFs0s_BFu0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0c_BFs0s, BFs0s_BFu0ll_BFs0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0c_BFu0c, BFs0s_BFu0ll_BFs0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0c_BFu0i, BFs0s_BFu0ll_BFs0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0c_BFu0ll, BFs0s_BFu0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0c_BFu0s, BFs0s_BFu0ll_BFs0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0i, BFs0s_BFu0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0i_BFs0c, BFs0s_BFu0ll_BFs0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0i_BFs0i, BFs0s_BFu0ll_BFs0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0i_BFs0ll, BFs0s_BFu0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0i_BFs0s, BFs0s_BFu0ll_BFs0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0i_BFu0c, BFs0s_BFu0ll_BFs0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0i_BFu0i, BFs0s_BFu0ll_BFs0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0i_BFu0ll, BFs0s_BFu0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0i_BFu0s, BFs0s_BFu0ll_BFs0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0ll, BFs0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0ll_BFs0c, BFs0s_BFu0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0ll_BFs0i, BFs0s_BFu0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0ll_BFs0ll, BFs0s_BFu0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0ll_BFs0s, BFs0s_BFu0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0ll_BFu0c, BFs0s_BFu0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0ll_BFu0i, BFs0s_BFu0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0ll_BFu0ll, BFs0s_BFu0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0ll_BFu0s, BFs0s_BFu0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0s, BFs0s_BFu0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0s_BFs0c, BFs0s_BFu0ll_BFs0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0s_BFs0i, BFs0s_BFu0ll_BFs0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0s_BFs0ll, BFs0s_BFu0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0s_BFs0s, BFs0s_BFu0ll_BFs0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0s_BFu0c, BFs0s_BFu0ll_BFs0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0s_BFu0i, BFs0s_BFu0ll_BFs0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0s_BFu0ll, BFs0s_BFu0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFs0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFs0s_BFu0s, BFs0s_BFu0ll_BFs0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0c, BFs0s_BFu0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0c_BFs0c, BFs0s_BFu0ll_BFu0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0c_BFs0i, BFs0s_BFu0ll_BFu0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0c_BFs0ll, BFs0s_BFu0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0c_BFs0s, BFs0s_BFu0ll_BFu0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0c_BFu0c, BFs0s_BFu0ll_BFu0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0c_BFu0i, BFs0s_BFu0ll_BFu0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0c_BFu0ll, BFs0s_BFu0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0c_BFu0s, BFs0s_BFu0ll_BFu0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0i, BFs0s_BFu0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0i_BFs0c, BFs0s_BFu0ll_BFu0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0i_BFs0i, BFs0s_BFu0ll_BFu0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0i_BFs0ll, BFs0s_BFu0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0i_BFs0s, BFs0s_BFu0ll_BFu0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0i_BFu0c, BFs0s_BFu0ll_BFu0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0i_BFu0i, BFs0s_BFu0ll_BFu0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0i_BFu0ll, BFs0s_BFu0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0i_BFu0s, BFs0s_BFu0ll_BFu0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0ll, BFs0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0ll_BFs0c, BFs0s_BFu0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0ll_BFs0i, BFs0s_BFu0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0ll_BFs0ll, BFs0s_BFu0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0ll_BFs0s, BFs0s_BFu0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0ll_BFu0c, BFs0s_BFu0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0ll_BFu0i, BFs0s_BFu0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0ll_BFu0ll, BFs0s_BFu0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0ll_BFu0s, BFs0s_BFu0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0s, BFs0s_BFu0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0s_BFs0c, BFs0s_BFu0ll_BFu0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0s_BFs0i, BFs0s_BFu0ll_BFu0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0s_BFs0ll, BFs0s_BFu0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0s_BFs0s, BFs0s_BFu0ll_BFu0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0s_BFu0c, BFs0s_BFu0ll_BFu0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0s_BFu0i, BFs0s_BFu0ll_BFu0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0s_BFu0ll, BFs0s_BFu0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0ll_BFu0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0ll_BFu0s_BFu0s, BFs0s_BFu0ll_BFu0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s, BFs0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0c, BFs0s_BFu0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0c_BFs0c, BFs0s_BFu0s_BFs0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0c_BFs0i, BFs0s_BFu0s_BFs0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0c_BFs0ll, BFs0s_BFu0s_BFs0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0c_BFs0s, BFs0s_BFu0s_BFs0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0c_BFu0c, BFs0s_BFu0s_BFs0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0c_BFu0i, BFs0s_BFu0s_BFs0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0c_BFu0ll, BFs0s_BFu0s_BFs0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0c_BFu0s, BFs0s_BFu0s_BFs0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0i, BFs0s_BFu0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0i_BFs0c, BFs0s_BFu0s_BFs0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0i_BFs0i, BFs0s_BFu0s_BFs0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0i_BFs0ll, BFs0s_BFu0s_BFs0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0i_BFs0s, BFs0s_BFu0s_BFs0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0i_BFu0c, BFs0s_BFu0s_BFs0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0i_BFu0i, BFs0s_BFu0s_BFs0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0i_BFu0ll, BFs0s_BFu0s_BFs0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0i_BFu0s, BFs0s_BFu0s_BFs0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0ll, BFs0s_BFu0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0ll_BFs0c, BFs0s_BFu0s_BFs0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0ll_BFs0i, BFs0s_BFu0s_BFs0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0ll_BFs0ll, BFs0s_BFu0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0ll_BFs0s, BFs0s_BFu0s_BFs0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0ll_BFu0c, BFs0s_BFu0s_BFs0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0ll_BFu0i, BFs0s_BFu0s_BFs0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0ll_BFu0ll, BFs0s_BFu0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0ll_BFu0s, BFs0s_BFu0s_BFs0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0s, BFs0s_BFu0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0s_BFs0c, BFs0s_BFu0s_BFs0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0s_BFs0i, BFs0s_BFu0s_BFs0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0s_BFs0ll, BFs0s_BFu0s_BFs0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0s_BFs0s, BFs0s_BFu0s_BFs0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0s_BFu0c, BFs0s_BFu0s_BFs0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0s_BFu0i, BFs0s_BFu0s_BFs0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0s_BFu0ll, BFs0s_BFu0s_BFs0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFs0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFs0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFs0s_BFu0s, BFs0s_BFu0s_BFs0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0c, BFs0s_BFu0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0c_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0c_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0c_BFs0c, BFs0s_BFu0s_BFu0c_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0c_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0c_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0c_BFs0i, BFs0s_BFu0s_BFu0c_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0c_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0c_BFs0ll, BFs0s_BFu0s_BFu0c_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0c_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0c_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0c_BFs0s, BFs0s_BFu0s_BFu0c_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0c_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0c_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0c_BFu0c, BFs0s_BFu0s_BFu0c_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0c_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0c_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0c_BFu0i, BFs0s_BFu0s_BFu0c_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0c_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0c_BFu0ll, BFs0s_BFu0s_BFu0c_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0c_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0c_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0c_BFu0s, BFs0s_BFu0s_BFu0c_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0i, BFs0s_BFu0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0i_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0i_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0i_BFs0c, BFs0s_BFu0s_BFu0i_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0i_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0i_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0i_BFs0i, BFs0s_BFu0s_BFu0i_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0i_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0i_BFs0ll, BFs0s_BFu0s_BFu0i_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0i_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0i_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0i_BFs0s, BFs0s_BFu0s_BFu0i_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0i_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0i_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0i_BFu0c, BFs0s_BFu0s_BFu0i_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0i_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0i_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0i_BFu0i, BFs0s_BFu0s_BFu0i_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0i_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0i_BFu0ll, BFs0s_BFu0s_BFu0i_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0i_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0i_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0i_BFu0s, BFs0s_BFu0s_BFu0i_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0ll, BFs0s_BFu0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0ll_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0ll_BFs0c, BFs0s_BFu0s_BFu0ll_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0ll_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0ll_BFs0i, BFs0s_BFu0s_BFu0ll_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0ll_BFs0ll, BFs0s_BFu0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0ll_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0ll_BFs0s, BFs0s_BFu0s_BFu0ll_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0ll_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0ll_BFu0c, BFs0s_BFu0s_BFu0ll_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0ll_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0ll_BFu0i, BFs0s_BFu0s_BFu0ll_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0ll_BFu0ll, BFs0s_BFu0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0ll_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0ll_BFu0s, BFs0s_BFu0s_BFu0ll_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0s, BFs0s_BFu0s_BFu0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0s_BFs0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0s_BFs0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0s_BFs0c, BFs0s_BFu0s_BFu0s_BFs0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0s_BFs0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0s_BFs0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0s_BFs0i, BFs0s_BFu0s_BFu0s_BFs0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0s_BFs0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0s_BFs0ll, BFs0s_BFu0s_BFu0s_BFs0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0s_BFs0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0s_BFs0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0s_BFs0s, BFs0s_BFu0s_BFu0s_BFs0s)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0s_BFu0c()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0s_BFu0c");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0s_BFu0c, BFs0s_BFu0s_BFu0s_BFu0c)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0s_BFu0i()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0s_BFu0i");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0s_BFu0i, BFs0s_BFu0s_BFu0s_BFu0i)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0s_BFu0ll");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0s_BFu0ll, BFs0s_BFu0s_BFu0s_BFu0ll)
//============================================================================



static void Test_BFs0s_BFu0s_BFu0s_BFu0s()
{
  {
    init_simple_test("BFs0s_BFu0s_BFu0s_BFu0s");
    static STRUCT_IF_C BFs0s_BFu0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFs0s_BFu0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFs0s_BFu0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFs0s_BFu0s_BFu0s_BFu0s, BFs0s_BFu0s_BFu0s_BFu0s)
//============================================================================



static void Test_BFu0c()
{
  {
    init_simple_test("BFu0c");
    static STRUCT_IF_C BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c, BFu0c)
//============================================================================



static void Test_BFu0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c, BFu0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0c, BFu0c_BFs0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFs0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0c_BFs0c, BFu0c_BFs0c_BFs0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0c_BFs0i, BFu0c_BFs0c_BFs0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0c_BFs0ll, BFu0c_BFs0c_BFs0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0c_BFs0s, BFu0c_BFs0c_BFs0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFs0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0c_BFu0c, BFu0c_BFs0c_BFs0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0c_BFu0i, BFu0c_BFs0c_BFs0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0c_BFu0ll, BFu0c_BFs0c_BFs0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0c_BFu0s, BFu0c_BFs0c_BFs0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0i, BFu0c_BFs0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0i_BFs0c, BFu0c_BFs0c_BFs0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0i_BFs0i, BFu0c_BFs0c_BFs0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0i_BFs0ll, BFu0c_BFs0c_BFs0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0i_BFs0s, BFu0c_BFs0c_BFs0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0i_BFu0c, BFu0c_BFs0c_BFs0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0i_BFu0i, BFu0c_BFs0c_BFs0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0i_BFu0ll, BFu0c_BFs0c_BFs0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0i_BFu0s, BFu0c_BFs0c_BFs0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0ll, BFu0c_BFs0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0ll_BFs0c, BFu0c_BFs0c_BFs0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0ll_BFs0i, BFu0c_BFs0c_BFs0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0ll_BFs0ll, BFu0c_BFs0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0ll_BFs0s, BFu0c_BFs0c_BFs0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0ll_BFu0c, BFu0c_BFs0c_BFs0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0ll_BFu0i, BFu0c_BFs0c_BFs0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0ll_BFu0ll, BFu0c_BFs0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0ll_BFu0s, BFu0c_BFs0c_BFs0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0s, BFu0c_BFs0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0s_BFs0c, BFu0c_BFs0c_BFs0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0s_BFs0i, BFu0c_BFs0c_BFs0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0s_BFs0ll, BFu0c_BFs0c_BFs0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0s_BFs0s, BFu0c_BFs0c_BFs0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0s_BFu0c, BFu0c_BFs0c_BFs0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0s_BFu0i, BFu0c_BFs0c_BFs0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0s_BFu0ll, BFu0c_BFs0c_BFs0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFs0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFs0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFs0s_BFu0s, BFu0c_BFs0c_BFs0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0c, BFu0c_BFs0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFs0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0c_BFs0c, BFu0c_BFs0c_BFu0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0c_BFs0i, BFu0c_BFs0c_BFu0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0c_BFs0ll, BFu0c_BFs0c_BFu0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0c_BFs0s, BFu0c_BFs0c_BFu0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFs0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0c_BFu0c, BFu0c_BFs0c_BFu0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0c_BFu0i, BFu0c_BFs0c_BFu0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0c_BFu0ll, BFu0c_BFs0c_BFu0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0c_BFu0s, BFu0c_BFs0c_BFu0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0i, BFu0c_BFs0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0i_BFs0c, BFu0c_BFs0c_BFu0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0i_BFs0i, BFu0c_BFs0c_BFu0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0i_BFs0ll, BFu0c_BFs0c_BFu0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0i_BFs0s, BFu0c_BFs0c_BFu0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0i_BFu0c, BFu0c_BFs0c_BFu0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0i_BFu0i, BFu0c_BFs0c_BFu0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0i_BFu0ll, BFu0c_BFs0c_BFu0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0i_BFu0s, BFu0c_BFs0c_BFu0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0ll, BFu0c_BFs0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0ll_BFs0c, BFu0c_BFs0c_BFu0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0ll_BFs0i, BFu0c_BFs0c_BFu0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0ll_BFs0ll, BFu0c_BFs0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0ll_BFs0s, BFu0c_BFs0c_BFu0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0ll_BFu0c, BFu0c_BFs0c_BFu0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0ll_BFu0i, BFu0c_BFs0c_BFu0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0ll_BFu0ll, BFu0c_BFs0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0ll_BFu0s, BFu0c_BFs0c_BFu0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0s, BFu0c_BFs0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0s_BFs0c, BFu0c_BFs0c_BFu0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0s_BFs0i, BFu0c_BFs0c_BFu0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0s_BFs0ll, BFu0c_BFs0c_BFu0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0s_BFs0s, BFu0c_BFs0c_BFu0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0s_BFu0c, BFu0c_BFs0c_BFu0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0s_BFu0i, BFu0c_BFs0c_BFu0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0s_BFu0ll, BFu0c_BFs0c_BFu0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0c_BFu0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0c_BFu0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0c_BFu0s_BFu0s, BFu0c_BFs0c_BFu0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i, BFu0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0c, BFu0c_BFs0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0c_BFs0c, BFu0c_BFs0i_BFs0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0c_BFs0i, BFu0c_BFs0i_BFs0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0c_BFs0ll, BFu0c_BFs0i_BFs0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0c_BFs0s, BFu0c_BFs0i_BFs0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0c_BFu0c, BFu0c_BFs0i_BFs0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0c_BFu0i, BFu0c_BFs0i_BFs0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0c_BFu0ll, BFu0c_BFs0i_BFs0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0c_BFu0s, BFu0c_BFs0i_BFs0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0i, BFu0c_BFs0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0i_BFs0c, BFu0c_BFs0i_BFs0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0i_BFs0i, BFu0c_BFs0i_BFs0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0i_BFs0ll, BFu0c_BFs0i_BFs0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0i_BFs0s, BFu0c_BFs0i_BFs0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0i_BFu0c, BFu0c_BFs0i_BFs0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0i_BFu0i, BFu0c_BFs0i_BFs0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0i_BFu0ll, BFu0c_BFs0i_BFs0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0i_BFu0s, BFu0c_BFs0i_BFs0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0ll, BFu0c_BFs0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0ll_BFs0c, BFu0c_BFs0i_BFs0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0ll_BFs0i, BFu0c_BFs0i_BFs0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0ll_BFs0ll, BFu0c_BFs0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0ll_BFs0s, BFu0c_BFs0i_BFs0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0ll_BFu0c, BFu0c_BFs0i_BFs0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0ll_BFu0i, BFu0c_BFs0i_BFs0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0ll_BFu0ll, BFu0c_BFs0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0ll_BFu0s, BFu0c_BFs0i_BFs0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0s, BFu0c_BFs0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0s_BFs0c, BFu0c_BFs0i_BFs0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0s_BFs0i, BFu0c_BFs0i_BFs0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0s_BFs0ll, BFu0c_BFs0i_BFs0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0s_BFs0s, BFu0c_BFs0i_BFs0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0s_BFu0c, BFu0c_BFs0i_BFs0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0s_BFu0i, BFu0c_BFs0i_BFs0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0s_BFu0ll, BFu0c_BFs0i_BFs0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFs0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFs0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFs0s_BFu0s, BFu0c_BFs0i_BFs0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0c, BFu0c_BFs0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0c_BFs0c, BFu0c_BFs0i_BFu0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0c_BFs0i, BFu0c_BFs0i_BFu0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0c_BFs0ll, BFu0c_BFs0i_BFu0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0c_BFs0s, BFu0c_BFs0i_BFu0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0c_BFu0c, BFu0c_BFs0i_BFu0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0c_BFu0i, BFu0c_BFs0i_BFu0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0c_BFu0ll, BFu0c_BFs0i_BFu0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0c_BFu0s, BFu0c_BFs0i_BFu0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0i, BFu0c_BFs0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0i_BFs0c, BFu0c_BFs0i_BFu0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0i_BFs0i, BFu0c_BFs0i_BFu0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0i_BFs0ll, BFu0c_BFs0i_BFu0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0i_BFs0s, BFu0c_BFs0i_BFu0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0i_BFu0c, BFu0c_BFs0i_BFu0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0i_BFu0i, BFu0c_BFs0i_BFu0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0i_BFu0ll, BFu0c_BFs0i_BFu0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0i_BFu0s, BFu0c_BFs0i_BFu0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0ll, BFu0c_BFs0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0ll_BFs0c, BFu0c_BFs0i_BFu0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0ll_BFs0i, BFu0c_BFs0i_BFu0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0ll_BFs0ll, BFu0c_BFs0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0ll_BFs0s, BFu0c_BFs0i_BFu0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0ll_BFu0c, BFu0c_BFs0i_BFu0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0ll_BFu0i, BFu0c_BFs0i_BFu0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0ll_BFu0ll, BFu0c_BFs0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0ll_BFu0s, BFu0c_BFs0i_BFu0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0s, BFu0c_BFs0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0s_BFs0c, BFu0c_BFs0i_BFu0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0s_BFs0i, BFu0c_BFs0i_BFu0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0s_BFs0ll, BFu0c_BFs0i_BFu0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0s_BFs0s, BFu0c_BFs0i_BFu0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0s_BFu0c, BFu0c_BFs0i_BFu0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0s_BFu0i, BFu0c_BFs0i_BFu0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0s_BFu0ll, BFu0c_BFs0i_BFu0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0i_BFu0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0i_BFu0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0i_BFu0s_BFu0s, BFu0c_BFs0i_BFu0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll, BFu0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0c, BFu0c_BFs0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0c_BFs0c, BFu0c_BFs0ll_BFs0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0c_BFs0i, BFu0c_BFs0ll_BFs0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0c_BFs0ll, BFu0c_BFs0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0c_BFs0s, BFu0c_BFs0ll_BFs0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0c_BFu0c, BFu0c_BFs0ll_BFs0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0c_BFu0i, BFu0c_BFs0ll_BFs0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0c_BFu0ll, BFu0c_BFs0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0c_BFu0s, BFu0c_BFs0ll_BFs0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0i, BFu0c_BFs0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0i_BFs0c, BFu0c_BFs0ll_BFs0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0i_BFs0i, BFu0c_BFs0ll_BFs0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0i_BFs0ll, BFu0c_BFs0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0i_BFs0s, BFu0c_BFs0ll_BFs0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0i_BFu0c, BFu0c_BFs0ll_BFs0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0i_BFu0i, BFu0c_BFs0ll_BFs0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0i_BFu0ll, BFu0c_BFs0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0i_BFu0s, BFu0c_BFs0ll_BFs0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0ll, BFu0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0ll_BFs0c, BFu0c_BFs0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0ll_BFs0i, BFu0c_BFs0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0ll_BFs0ll, BFu0c_BFs0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0ll_BFs0s, BFu0c_BFs0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0ll_BFu0c, BFu0c_BFs0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0ll_BFu0i, BFu0c_BFs0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0ll_BFu0ll, BFu0c_BFs0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0ll_BFu0s, BFu0c_BFs0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0s, BFu0c_BFs0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0s_BFs0c, BFu0c_BFs0ll_BFs0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0s_BFs0i, BFu0c_BFs0ll_BFs0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0s_BFs0ll, BFu0c_BFs0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0s_BFs0s, BFu0c_BFs0ll_BFs0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0s_BFu0c, BFu0c_BFs0ll_BFs0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0s_BFu0i, BFu0c_BFs0ll_BFs0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0s_BFu0ll, BFu0c_BFs0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFs0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFs0s_BFu0s, BFu0c_BFs0ll_BFs0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0c, BFu0c_BFs0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0c_BFs0c, BFu0c_BFs0ll_BFu0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0c_BFs0i, BFu0c_BFs0ll_BFu0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0c_BFs0ll, BFu0c_BFs0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0c_BFs0s, BFu0c_BFs0ll_BFu0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0c_BFu0c, BFu0c_BFs0ll_BFu0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0c_BFu0i, BFu0c_BFs0ll_BFu0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0c_BFu0ll, BFu0c_BFs0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0c_BFu0s, BFu0c_BFs0ll_BFu0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0i, BFu0c_BFs0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0i_BFs0c, BFu0c_BFs0ll_BFu0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0i_BFs0i, BFu0c_BFs0ll_BFu0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0i_BFs0ll, BFu0c_BFs0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0i_BFs0s, BFu0c_BFs0ll_BFu0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0i_BFu0c, BFu0c_BFs0ll_BFu0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0i_BFu0i, BFu0c_BFs0ll_BFu0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0i_BFu0ll, BFu0c_BFs0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0i_BFu0s, BFu0c_BFs0ll_BFu0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0ll, BFu0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0ll_BFs0c, BFu0c_BFs0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0ll_BFs0i, BFu0c_BFs0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0ll_BFs0ll, BFu0c_BFs0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0ll_BFs0s, BFu0c_BFs0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0ll_BFu0c, BFu0c_BFs0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0ll_BFu0i, BFu0c_BFs0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0ll_BFu0ll, BFu0c_BFs0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0ll_BFu0s, BFu0c_BFs0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0s, BFu0c_BFs0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0s_BFs0c, BFu0c_BFs0ll_BFu0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0s_BFs0i, BFu0c_BFs0ll_BFu0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0s_BFs0ll, BFu0c_BFs0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0s_BFs0s, BFu0c_BFs0ll_BFu0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0s_BFu0c, BFu0c_BFs0ll_BFu0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0s_BFu0i, BFu0c_BFs0ll_BFu0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0s_BFu0ll, BFu0c_BFs0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0ll_BFu0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0ll_BFu0s_BFu0s, BFu0c_BFs0ll_BFu0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s, BFu0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0c, BFu0c_BFs0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0c_BFs0c, BFu0c_BFs0s_BFs0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0c_BFs0i, BFu0c_BFs0s_BFs0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0c_BFs0ll, BFu0c_BFs0s_BFs0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0c_BFs0s, BFu0c_BFs0s_BFs0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0c_BFu0c, BFu0c_BFs0s_BFs0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0c_BFu0i, BFu0c_BFs0s_BFs0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0c_BFu0ll, BFu0c_BFs0s_BFs0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0c_BFu0s, BFu0c_BFs0s_BFs0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0i, BFu0c_BFs0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0i_BFs0c, BFu0c_BFs0s_BFs0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0i_BFs0i, BFu0c_BFs0s_BFs0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0i_BFs0ll, BFu0c_BFs0s_BFs0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0i_BFs0s, BFu0c_BFs0s_BFs0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0i_BFu0c, BFu0c_BFs0s_BFs0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0i_BFu0i, BFu0c_BFs0s_BFs0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0i_BFu0ll, BFu0c_BFs0s_BFs0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0i_BFu0s, BFu0c_BFs0s_BFs0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0ll, BFu0c_BFs0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0ll_BFs0c, BFu0c_BFs0s_BFs0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0ll_BFs0i, BFu0c_BFs0s_BFs0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0ll_BFs0ll, BFu0c_BFs0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0ll_BFs0s, BFu0c_BFs0s_BFs0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0ll_BFu0c, BFu0c_BFs0s_BFs0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0ll_BFu0i, BFu0c_BFs0s_BFs0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0ll_BFu0ll, BFu0c_BFs0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0ll_BFu0s, BFu0c_BFs0s_BFs0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0s, BFu0c_BFs0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0s_BFs0c, BFu0c_BFs0s_BFs0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0s_BFs0i, BFu0c_BFs0s_BFs0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0s_BFs0ll, BFu0c_BFs0s_BFs0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0s_BFs0s, BFu0c_BFs0s_BFs0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0s_BFu0c, BFu0c_BFs0s_BFs0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0s_BFu0i, BFu0c_BFs0s_BFs0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0s_BFu0ll, BFu0c_BFs0s_BFs0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFs0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFs0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFs0s_BFu0s, BFu0c_BFs0s_BFs0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0c, BFu0c_BFs0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0c_BFs0c, BFu0c_BFs0s_BFu0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0c_BFs0i, BFu0c_BFs0s_BFu0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0c_BFs0ll, BFu0c_BFs0s_BFu0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0c_BFs0s, BFu0c_BFs0s_BFu0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0c_BFu0c, BFu0c_BFs0s_BFu0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0c_BFu0i, BFu0c_BFs0s_BFu0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0c_BFu0ll, BFu0c_BFs0s_BFu0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0c_BFu0s, BFu0c_BFs0s_BFu0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0i, BFu0c_BFs0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0i_BFs0c, BFu0c_BFs0s_BFu0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0i_BFs0i, BFu0c_BFs0s_BFu0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0i_BFs0ll, BFu0c_BFs0s_BFu0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0i_BFs0s, BFu0c_BFs0s_BFu0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0i_BFu0c, BFu0c_BFs0s_BFu0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0i_BFu0i, BFu0c_BFs0s_BFu0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0i_BFu0ll, BFu0c_BFs0s_BFu0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0i_BFu0s, BFu0c_BFs0s_BFu0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0ll, BFu0c_BFs0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0ll_BFs0c, BFu0c_BFs0s_BFu0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0ll_BFs0i, BFu0c_BFs0s_BFu0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0ll_BFs0ll, BFu0c_BFs0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0ll_BFs0s, BFu0c_BFs0s_BFu0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0ll_BFu0c, BFu0c_BFs0s_BFu0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0ll_BFu0i, BFu0c_BFs0s_BFu0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0ll_BFu0ll, BFu0c_BFs0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0ll_BFu0s, BFu0c_BFs0s_BFu0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0s, BFu0c_BFs0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0s_BFs0c, BFu0c_BFs0s_BFu0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0s_BFs0i, BFu0c_BFs0s_BFu0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0s_BFs0ll, BFu0c_BFs0s_BFu0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0s_BFs0s, BFu0c_BFs0s_BFu0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0s_BFu0c, BFu0c_BFs0s_BFu0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0s_BFu0i, BFu0c_BFs0s_BFu0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0s_BFu0ll, BFu0c_BFs0s_BFu0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFs0s_BFu0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFs0s_BFu0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFs0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFs0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFs0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFs0s_BFu0s_BFu0s, BFu0c_BFs0s_BFu0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c, BFu0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0c, BFu0c_BFu0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0c_BFs0c, BFu0c_BFu0c_BFs0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0c_BFs0i, BFu0c_BFu0c_BFs0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0c_BFs0ll, BFu0c_BFu0c_BFs0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0c_BFs0s, BFu0c_BFu0c_BFs0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0c_BFu0c, BFu0c_BFu0c_BFs0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0c_BFu0i, BFu0c_BFu0c_BFs0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0c_BFu0ll, BFu0c_BFu0c_BFs0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0c_BFu0s, BFu0c_BFu0c_BFs0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0i, BFu0c_BFu0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0i_BFs0c, BFu0c_BFu0c_BFs0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0i_BFs0i, BFu0c_BFu0c_BFs0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0i_BFs0ll, BFu0c_BFu0c_BFs0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0i_BFs0s, BFu0c_BFu0c_BFs0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0i_BFu0c, BFu0c_BFu0c_BFs0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0i_BFu0i, BFu0c_BFu0c_BFs0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0i_BFu0ll, BFu0c_BFu0c_BFs0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0i_BFu0s, BFu0c_BFu0c_BFs0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0ll, BFu0c_BFu0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0ll_BFs0c, BFu0c_BFu0c_BFs0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0ll_BFs0i, BFu0c_BFu0c_BFs0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0ll_BFs0ll, BFu0c_BFu0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0ll_BFs0s, BFu0c_BFu0c_BFs0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0ll_BFu0c, BFu0c_BFu0c_BFs0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0ll_BFu0i, BFu0c_BFu0c_BFs0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0ll_BFu0ll, BFu0c_BFu0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0ll_BFu0s, BFu0c_BFu0c_BFs0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0s, BFu0c_BFu0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0s_BFs0c, BFu0c_BFu0c_BFs0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0s_BFs0i, BFu0c_BFu0c_BFs0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0s_BFs0ll, BFu0c_BFu0c_BFs0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0s_BFs0s, BFu0c_BFu0c_BFs0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0s_BFu0c, BFu0c_BFu0c_BFs0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0s_BFu0i, BFu0c_BFu0c_BFs0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0s_BFu0ll, BFu0c_BFu0c_BFs0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFs0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFs0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFs0s_BFu0s, BFu0c_BFu0c_BFs0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0c, BFu0c_BFu0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0c_BFs0c, BFu0c_BFu0c_BFu0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0c_BFs0i, BFu0c_BFu0c_BFu0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0c_BFs0ll, BFu0c_BFu0c_BFu0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0c_BFs0s, BFu0c_BFu0c_BFu0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0c_BFu0c, BFu0c_BFu0c_BFu0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0c_BFu0i, BFu0c_BFu0c_BFu0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0c_BFu0ll, BFu0c_BFu0c_BFu0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0c_BFu0s, BFu0c_BFu0c_BFu0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0i, BFu0c_BFu0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0i_BFs0c, BFu0c_BFu0c_BFu0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0i_BFs0i, BFu0c_BFu0c_BFu0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0i_BFs0ll, BFu0c_BFu0c_BFu0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0i_BFs0s, BFu0c_BFu0c_BFu0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0i_BFu0c, BFu0c_BFu0c_BFu0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0i_BFu0i, BFu0c_BFu0c_BFu0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0i_BFu0ll, BFu0c_BFu0c_BFu0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0i_BFu0s, BFu0c_BFu0c_BFu0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0ll, BFu0c_BFu0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0ll_BFs0c, BFu0c_BFu0c_BFu0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0ll_BFs0i, BFu0c_BFu0c_BFu0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0ll_BFs0ll, BFu0c_BFu0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0ll_BFs0s, BFu0c_BFu0c_BFu0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0ll_BFu0c, BFu0c_BFu0c_BFu0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0ll_BFu0i, BFu0c_BFu0c_BFu0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0ll_BFu0ll, BFu0c_BFu0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0ll_BFu0s, BFu0c_BFu0c_BFu0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0s, BFu0c_BFu0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0s_BFs0c, BFu0c_BFu0c_BFu0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0s_BFs0i, BFu0c_BFu0c_BFu0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0s_BFs0ll, BFu0c_BFu0c_BFu0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0s_BFs0s, BFu0c_BFu0c_BFu0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0s_BFu0c, BFu0c_BFu0c_BFu0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0s_BFu0i, BFu0c_BFu0c_BFu0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0s_BFu0ll, BFu0c_BFu0c_BFu0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu0s_BFu0s, BFu0c_BFu0c_BFu0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu15i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu15i, BFu0c_BFu0c_BFu15i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu15ll, BFu0c_BFu0c_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu15s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu15s, BFu0c_BFu0c_BFu15s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu16i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu16i, BFu0c_BFu0c_BFu16i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu16ll, BFu0c_BFu0c_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu16s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu16s, BFu0c_BFu0c_BFu16s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu17i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu0c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu0c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu0c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu17i, BFu0c_BFu0c_BFu17i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu0c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu0c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu0c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu17ll, BFu0c_BFu0c_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu1c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu1c, BFu0c_BFu0c_BFu1c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu1i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu1i, BFu0c_BFu0c_BFu1i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu1ll, BFu0c_BFu0c_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu1s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu1s, BFu0c_BFu0c_BFu1s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu31i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu0c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu0c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu31i, BFu0c_BFu0c_BFu31i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu0c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu0c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu31ll, BFu0c_BFu0c_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu32i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu0c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu0c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu32i, BFu0c_BFu0c_BFu32i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu0c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu0c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu32ll, BFu0c_BFu0c_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu33()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu33");
    static STRUCT_IF_C BFu0c_BFu0c_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu0c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu0c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu0c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu33, BFu0c_BFu0c_BFu33)
//============================================================================



static void Test_BFu0c_BFu0c_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu7c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu7c, BFu0c_BFu0c_BFu7c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu7i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu7i, BFu0c_BFu0c_BFu7i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu7ll, BFu0c_BFu0c_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu7s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu7s, BFu0c_BFu0c_BFu7s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu8c");
    static STRUCT_IF_C BFu0c_BFu0c_BFu8c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu8c, BFu0c_BFu0c_BFu8c)
//============================================================================



static void Test_BFu0c_BFu0c_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu8i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu8i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu8i, BFu0c_BFu0c_BFu8i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu8ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu8ll, BFu0c_BFu0c_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu8s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu8s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu8s, BFu0c_BFu0c_BFu8s)
//============================================================================



static void Test_BFu0c_BFu0c_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu9i");
    static STRUCT_IF_C BFu0c_BFu0c_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu9i, BFu0c_BFu0c_BFu9i)
//============================================================================



static void Test_BFu0c_BFu0c_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu0c_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu9ll, BFu0c_BFu0c_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu0c_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu0c_BFu9s");
    static STRUCT_IF_C BFu0c_BFu0c_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_BFu9s, BFu0c_BFu0c_BFu9s)
//============================================================================



static void Test_BFu0c_BFu0c_C()
{
  {
    init_simple_test("BFu0c_BFu0c_C");
    static STRUCT_IF_C BFu0c_BFu0c_C lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_C)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_C, BFu0c_BFu0c_C)
//============================================================================



static void Test_BFu0c_BFu0c_D()
{
  {
    init_simple_test("BFu0c_BFu0c_D");
    static STRUCT_IF_C BFu0c_BFu0c_D lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0c_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_D)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_D, BFu0c_BFu0c_D)
//============================================================================



static void Test_BFu0c_BFu0c_F()
{
  {
    init_simple_test("BFu0c_BFu0c_F");
    static STRUCT_IF_C BFu0c_BFu0c_F lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0c_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_F)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_F, BFu0c_BFu0c_F)
//============================================================================



static void Test_BFu0c_BFu0c_I()
{
  {
    init_simple_test("BFu0c_BFu0c_I");
    static STRUCT_IF_C BFu0c_BFu0c_I lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0c_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_I)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_I, BFu0c_BFu0c_I)
//============================================================================



static void Test_BFu0c_BFu0c_Ip()
{
  {
    init_simple_test("BFu0c_BFu0c_Ip");
    static STRUCT_IF_C BFu0c_BFu0c_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu0c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_Ip)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_Ip, BFu0c_BFu0c_Ip)
//============================================================================



static void Test_BFu0c_BFu0c_L()
{
  {
    init_simple_test("BFu0c_BFu0c_L");
    static STRUCT_IF_C BFu0c_BFu0c_L lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0c_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_L)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_L, BFu0c_BFu0c_L)
//============================================================================



static void Test_BFu0c_BFu0c_S()
{
  {
    init_simple_test("BFu0c_BFu0c_S");
    static STRUCT_IF_C BFu0c_BFu0c_S lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0c_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_S)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_S, BFu0c_BFu0c_S)
//============================================================================



static void Test_BFu0c_BFu0c_Uc()
{
  {
    init_simple_test("BFu0c_BFu0c_Uc");
    static STRUCT_IF_C BFu0c_BFu0c_Uc lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu0c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_Uc)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_Uc, BFu0c_BFu0c_Uc)
//============================================================================



static void Test_BFu0c_BFu0c_Ui()
{
  {
    init_simple_test("BFu0c_BFu0c_Ui");
    static STRUCT_IF_C BFu0c_BFu0c_Ui lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_Ui)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_Ui, BFu0c_BFu0c_Ui)
//============================================================================



static void Test_BFu0c_BFu0c_Ul()
{
  {
    init_simple_test("BFu0c_BFu0c_Ul");
    static STRUCT_IF_C BFu0c_BFu0c_Ul lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_Ul)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_Ul, BFu0c_BFu0c_Ul)
//============================================================================



static void Test_BFu0c_BFu0c_Us()
{
  {
    init_simple_test("BFu0c_BFu0c_Us");
    static STRUCT_IF_C BFu0c_BFu0c_Us lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_Us)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_Us, BFu0c_BFu0c_Us)
//============================================================================



static void Test_BFu0c_BFu0c_Vp()
{
  {
    init_simple_test("BFu0c_BFu0c_Vp");
    static STRUCT_IF_C BFu0c_BFu0c_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu0c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu0c_Vp)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0c_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0c_Vp, BFu0c_BFu0c_Vp)
//============================================================================



static void Test_BFu0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i, BFu0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0c, BFu0c_BFu0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0c_BFs0c, BFu0c_BFu0i_BFs0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0c_BFs0i, BFu0c_BFu0i_BFs0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0c_BFs0ll, BFu0c_BFu0i_BFs0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0c_BFs0s, BFu0c_BFu0i_BFs0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0c_BFu0c, BFu0c_BFu0i_BFs0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0c_BFu0i, BFu0c_BFu0i_BFs0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0c_BFu0ll, BFu0c_BFu0i_BFs0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0c_BFu0s, BFu0c_BFu0i_BFs0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0i, BFu0c_BFu0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0i_BFs0c, BFu0c_BFu0i_BFs0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0i_BFs0i, BFu0c_BFu0i_BFs0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0i_BFs0ll, BFu0c_BFu0i_BFs0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0i_BFs0s, BFu0c_BFu0i_BFs0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0i_BFu0c, BFu0c_BFu0i_BFs0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0i_BFu0i, BFu0c_BFu0i_BFs0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0i_BFu0ll, BFu0c_BFu0i_BFs0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0i_BFu0s, BFu0c_BFu0i_BFs0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0ll, BFu0c_BFu0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0ll_BFs0c, BFu0c_BFu0i_BFs0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0ll_BFs0i, BFu0c_BFu0i_BFs0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0ll_BFs0ll, BFu0c_BFu0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0ll_BFs0s, BFu0c_BFu0i_BFs0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0ll_BFu0c, BFu0c_BFu0i_BFs0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0ll_BFu0i, BFu0c_BFu0i_BFs0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0ll_BFu0ll, BFu0c_BFu0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0ll_BFu0s, BFu0c_BFu0i_BFs0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0s, BFu0c_BFu0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0s_BFs0c, BFu0c_BFu0i_BFs0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0s_BFs0i, BFu0c_BFu0i_BFs0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0s_BFs0ll, BFu0c_BFu0i_BFs0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0s_BFs0s, BFu0c_BFu0i_BFs0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0s_BFu0c, BFu0c_BFu0i_BFs0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0s_BFu0i, BFu0c_BFu0i_BFs0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0s_BFu0ll, BFu0c_BFu0i_BFs0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFs0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFs0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFs0s_BFu0s, BFu0c_BFu0i_BFs0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0c, BFu0c_BFu0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0c_BFs0c, BFu0c_BFu0i_BFu0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0c_BFs0i, BFu0c_BFu0i_BFu0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0c_BFs0ll, BFu0c_BFu0i_BFu0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0c_BFs0s, BFu0c_BFu0i_BFu0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0c_BFu0c, BFu0c_BFu0i_BFu0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0c_BFu0i, BFu0c_BFu0i_BFu0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0c_BFu0ll, BFu0c_BFu0i_BFu0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0c_BFu0s, BFu0c_BFu0i_BFu0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0i, BFu0c_BFu0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0i_BFs0c, BFu0c_BFu0i_BFu0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0i_BFs0i, BFu0c_BFu0i_BFu0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0i_BFs0ll, BFu0c_BFu0i_BFu0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0i_BFs0s, BFu0c_BFu0i_BFu0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0i_BFu0c, BFu0c_BFu0i_BFu0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0i_BFu0i, BFu0c_BFu0i_BFu0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0i_BFu0ll, BFu0c_BFu0i_BFu0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0i_BFu0s, BFu0c_BFu0i_BFu0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0ll, BFu0c_BFu0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0ll_BFs0c, BFu0c_BFu0i_BFu0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0ll_BFs0i, BFu0c_BFu0i_BFu0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0ll_BFs0ll, BFu0c_BFu0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0ll_BFs0s, BFu0c_BFu0i_BFu0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0ll_BFu0c, BFu0c_BFu0i_BFu0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0ll_BFu0i, BFu0c_BFu0i_BFu0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0ll_BFu0ll, BFu0c_BFu0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0ll_BFu0s, BFu0c_BFu0i_BFu0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0s, BFu0c_BFu0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0s_BFs0c, BFu0c_BFu0i_BFu0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0s_BFs0i, BFu0c_BFu0i_BFu0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0s_BFs0ll, BFu0c_BFu0i_BFu0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0s_BFs0s, BFu0c_BFu0i_BFu0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0s_BFu0c, BFu0c_BFu0i_BFu0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0s_BFu0i, BFu0c_BFu0i_BFu0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0s_BFu0ll, BFu0c_BFu0i_BFu0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu0s_BFu0s, BFu0c_BFu0i_BFu0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu15i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu15i lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0i_BFu15i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu15i, BFu0c_BFu0i_BFu15i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0i_BFu15ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu15ll, BFu0c_BFu0i_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu15s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu15s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0i_BFu15s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu15s, BFu0c_BFu0i_BFu15s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu16i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu16i lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0i_BFu16i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu16i, BFu0c_BFu0i_BFu16i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0i_BFu16ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu16ll, BFu0c_BFu0i_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu16s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu16s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0i_BFu16s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu16s, BFu0c_BFu0i_BFu16s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu17i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu17i lv;
    check2(sizeof(lv), ABISELECT(3,3), "sizeof(BFu0c_BFu0i_BFu17i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu0i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu0i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu17i, BFu0c_BFu0i_BFu17i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(3,3), "sizeof(BFu0c_BFu0i_BFu17ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu0i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu0i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu17ll, BFu0c_BFu0i_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu1c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu1c lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu1c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu1c, BFu0c_BFu0i_BFu1c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu1i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu1i lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu1i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu1i, BFu0c_BFu0i_BFu1i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu1ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu1ll, BFu0c_BFu0i_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu1s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu1s lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu1s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu1s, BFu0c_BFu0i_BFu1s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu31i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0i_BFu31i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu0i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu0i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu31i, BFu0c_BFu0i_BFu31i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0i_BFu31ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu0i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu0i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu31ll, BFu0c_BFu0i_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu32i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0i_BFu32i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu0i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu0i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu32i, BFu0c_BFu0i_BFu32i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0i_BFu32ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu0i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu0i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu32ll, BFu0c_BFu0i_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu33()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu33");
    static STRUCT_IF_C BFu0c_BFu0i_BFu33 lv;
    check2(sizeof(lv), ABISELECT(5,5), "sizeof(BFu0c_BFu0i_BFu33)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu0i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu0i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu33, BFu0c_BFu0i_BFu33)
//============================================================================



static void Test_BFu0c_BFu0i_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu7c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu7c lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu7c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu7c, BFu0c_BFu0i_BFu7c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu7i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu7i lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu7i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu7i, BFu0c_BFu0i_BFu7i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu7ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu7ll, BFu0c_BFu0i_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu7s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu7s lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu7s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu7s, BFu0c_BFu0i_BFu7s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu8c");
    static STRUCT_IF_C BFu0c_BFu0i_BFu8c lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu8c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu8c, BFu0c_BFu0i_BFu8c)
//============================================================================



static void Test_BFu0c_BFu0i_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu8i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu8i lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu8i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu8i, BFu0c_BFu0i_BFu8i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu8ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu8ll, BFu0c_BFu0i_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu8s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu8s lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_BFu8s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu8s, BFu0c_BFu0i_BFu8s)
//============================================================================



static void Test_BFu0c_BFu0i_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu9i");
    static STRUCT_IF_C BFu0c_BFu0i_BFu9i lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0i_BFu9i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu9i, BFu0c_BFu0i_BFu9i)
//============================================================================



static void Test_BFu0c_BFu0i_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu0i_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0i_BFu9ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu9ll, BFu0c_BFu0i_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu0i_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu0i_BFu9s");
    static STRUCT_IF_C BFu0c_BFu0i_BFu9s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0i_BFu9s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_BFu9s, BFu0c_BFu0i_BFu9s)
//============================================================================



static void Test_BFu0c_BFu0i_C()
{
  {
    init_simple_test("BFu0c_BFu0i_C");
    static STRUCT_IF_C BFu0c_BFu0i_C lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_C)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_C)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_C, BFu0c_BFu0i_C)
//============================================================================



static void Test_BFu0c_BFu0i_D()
{
  {
    init_simple_test("BFu0c_BFu0i_D");
    static STRUCT_IF_C BFu0c_BFu0i_D lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0i_D)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_D)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_D, BFu0c_BFu0i_D)
//============================================================================



static void Test_BFu0c_BFu0i_F()
{
  {
    init_simple_test("BFu0c_BFu0i_F");
    static STRUCT_IF_C BFu0c_BFu0i_F lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0i_F)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_F)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_F, BFu0c_BFu0i_F)
//============================================================================



static void Test_BFu0c_BFu0i_I()
{
  {
    init_simple_test("BFu0c_BFu0i_I");
    static STRUCT_IF_C BFu0c_BFu0i_I lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0i_I)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_I)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_I, BFu0c_BFu0i_I)
//============================================================================



static void Test_BFu0c_BFu0i_Ip()
{
  {
    init_simple_test("BFu0c_BFu0i_Ip");
    static STRUCT_IF_C BFu0c_BFu0i_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu0i_Ip)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_Ip)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_Ip, BFu0c_BFu0i_Ip)
//============================================================================



static void Test_BFu0c_BFu0i_L()
{
  {
    init_simple_test("BFu0c_BFu0i_L");
    static STRUCT_IF_C BFu0c_BFu0i_L lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0i_L)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_L)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_L, BFu0c_BFu0i_L)
//============================================================================



static void Test_BFu0c_BFu0i_S()
{
  {
    init_simple_test("BFu0c_BFu0i_S");
    static STRUCT_IF_C BFu0c_BFu0i_S lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0i_S)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_S)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_S, BFu0c_BFu0i_S)
//============================================================================



static void Test_BFu0c_BFu0i_Uc()
{
  {
    init_simple_test("BFu0c_BFu0i_Uc");
    static STRUCT_IF_C BFu0c_BFu0i_Uc lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0i_Uc)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_Uc)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_Uc, BFu0c_BFu0i_Uc)
//============================================================================



static void Test_BFu0c_BFu0i_Ui()
{
  {
    init_simple_test("BFu0c_BFu0i_Ui");
    static STRUCT_IF_C BFu0c_BFu0i_Ui lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0i_Ui)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_Ui)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_Ui, BFu0c_BFu0i_Ui)
//============================================================================



static void Test_BFu0c_BFu0i_Ul()
{
  {
    init_simple_test("BFu0c_BFu0i_Ul");
    static STRUCT_IF_C BFu0c_BFu0i_Ul lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0i_Ul)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_Ul)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_Ul, BFu0c_BFu0i_Ul)
//============================================================================



static void Test_BFu0c_BFu0i_Us()
{
  {
    init_simple_test("BFu0c_BFu0i_Us");
    static STRUCT_IF_C BFu0c_BFu0i_Us lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0i_Us)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_Us)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_Us, BFu0c_BFu0i_Us)
//============================================================================



static void Test_BFu0c_BFu0i_Vp()
{
  {
    init_simple_test("BFu0c_BFu0i_Vp");
    static STRUCT_IF_C BFu0c_BFu0i_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu0i_Vp)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0i_Vp)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0i_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0i_Vp, BFu0c_BFu0i_Vp)
//============================================================================



static void Test_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll, BFu0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0c, BFu0c_BFu0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0c_BFs0c, BFu0c_BFu0ll_BFs0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0c_BFs0i, BFu0c_BFu0ll_BFs0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0c_BFs0ll, BFu0c_BFu0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0c_BFs0s, BFu0c_BFu0ll_BFs0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0c_BFu0c, BFu0c_BFu0ll_BFs0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0c_BFu0i, BFu0c_BFu0ll_BFs0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0c_BFu0ll, BFu0c_BFu0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0c_BFu0s, BFu0c_BFu0ll_BFs0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0i, BFu0c_BFu0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0i_BFs0c, BFu0c_BFu0ll_BFs0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0i_BFs0i, BFu0c_BFu0ll_BFs0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0i_BFs0ll, BFu0c_BFu0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0i_BFs0s, BFu0c_BFu0ll_BFs0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0i_BFu0c, BFu0c_BFu0ll_BFs0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0i_BFu0i, BFu0c_BFu0ll_BFs0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0i_BFu0ll, BFu0c_BFu0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0i_BFu0s, BFu0c_BFu0ll_BFs0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0ll, BFu0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0ll_BFs0c, BFu0c_BFu0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0ll_BFs0i, BFu0c_BFu0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0ll_BFs0ll, BFu0c_BFu0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0ll_BFs0s, BFu0c_BFu0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0ll_BFu0c, BFu0c_BFu0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0ll_BFu0i, BFu0c_BFu0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0ll_BFu0ll, BFu0c_BFu0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0ll_BFu0s, BFu0c_BFu0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0s, BFu0c_BFu0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0s_BFs0c, BFu0c_BFu0ll_BFs0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0s_BFs0i, BFu0c_BFu0ll_BFs0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0s_BFs0ll, BFu0c_BFu0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0s_BFs0s, BFu0c_BFu0ll_BFs0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0s_BFu0c, BFu0c_BFu0ll_BFs0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0s_BFu0i, BFu0c_BFu0ll_BFs0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0s_BFu0ll, BFu0c_BFu0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFs0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFs0s_BFu0s, BFu0c_BFu0ll_BFs0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0c, BFu0c_BFu0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0c_BFs0c, BFu0c_BFu0ll_BFu0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0c_BFs0i, BFu0c_BFu0ll_BFu0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0c_BFs0ll, BFu0c_BFu0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0c_BFs0s, BFu0c_BFu0ll_BFu0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0c_BFu0c, BFu0c_BFu0ll_BFu0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0c_BFu0i, BFu0c_BFu0ll_BFu0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0c_BFu0ll, BFu0c_BFu0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0c_BFu0s, BFu0c_BFu0ll_BFu0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0i, BFu0c_BFu0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0i_BFs0c, BFu0c_BFu0ll_BFu0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0i_BFs0i, BFu0c_BFu0ll_BFu0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0i_BFs0ll, BFu0c_BFu0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0i_BFs0s, BFu0c_BFu0ll_BFu0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0i_BFu0c, BFu0c_BFu0ll_BFu0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0i_BFu0i, BFu0c_BFu0ll_BFu0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0i_BFu0ll, BFu0c_BFu0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0i_BFu0s, BFu0c_BFu0ll_BFu0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0ll, BFu0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0ll_BFs0c, BFu0c_BFu0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0ll_BFs0i, BFu0c_BFu0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0ll_BFs0ll, BFu0c_BFu0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0ll_BFs0s, BFu0c_BFu0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0ll_BFu0c, BFu0c_BFu0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0ll_BFu0i, BFu0c_BFu0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0ll_BFu0ll, BFu0c_BFu0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0ll_BFu0s, BFu0c_BFu0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0s, BFu0c_BFu0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0s_BFs0c, BFu0c_BFu0ll_BFu0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0s_BFs0i, BFu0c_BFu0ll_BFu0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0s_BFs0ll, BFu0c_BFu0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0s_BFs0s, BFu0c_BFu0ll_BFu0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0s_BFu0c, BFu0c_BFu0ll_BFu0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0s_BFu0i, BFu0c_BFu0ll_BFu0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0s_BFu0ll, BFu0c_BFu0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu0s_BFu0s, BFu0c_BFu0ll_BFu0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu15i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu15i lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0ll_BFu15i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu15i, BFu0c_BFu0ll_BFu15i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0ll_BFu15ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu15ll, BFu0c_BFu0ll_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu15s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu15s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0ll_BFu15s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu15s, BFu0c_BFu0ll_BFu15s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu16i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu16i lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0ll_BFu16i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu16i, BFu0c_BFu0ll_BFu16i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0ll_BFu16ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu16ll, BFu0c_BFu0ll_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu16s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu16s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0ll_BFu16s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu16s, BFu0c_BFu0ll_BFu16s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu17i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu17i lv;
    check2(sizeof(lv), ABISELECT(3,3), "sizeof(BFu0c_BFu0ll_BFu17i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu0ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu0ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu17i, BFu0c_BFu0ll_BFu17i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(3,3), "sizeof(BFu0c_BFu0ll_BFu17ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu0ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu0ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu17ll, BFu0c_BFu0ll_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu1c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu1c lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu1c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu1c, BFu0c_BFu0ll_BFu1c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu1i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu1i lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu1i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu1i, BFu0c_BFu0ll_BFu1i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu1ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu1ll, BFu0c_BFu0ll_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu1s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu1s lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu1s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu1s, BFu0c_BFu0ll_BFu1s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu31i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu31i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu0ll_BFu31i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu0ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu0ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu31i, BFu0c_BFu0ll_BFu31i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu0ll_BFu31ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu0ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu0ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu31ll, BFu0c_BFu0ll_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu32i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu32i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu0ll_BFu32i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu0ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu0ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu32i, BFu0c_BFu0ll_BFu32i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu0ll_BFu32ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu0ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu0ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu32ll, BFu0c_BFu0ll_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu33()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu33");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu33 lv;
    check2(sizeof(lv), ABISELECT(5,5), "sizeof(BFu0c_BFu0ll_BFu33)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu0ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu0ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu33, BFu0c_BFu0ll_BFu33)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu7c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu7c lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu7c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu7c, BFu0c_BFu0ll_BFu7c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu7i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu7i lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu7i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu7i, BFu0c_BFu0ll_BFu7i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu7ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu7ll, BFu0c_BFu0ll_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu7s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu7s lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu7s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu7s, BFu0c_BFu0ll_BFu7s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu8c");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu8c lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu8c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu8c, BFu0c_BFu0ll_BFu8c)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu8i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu8i lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu8i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu8i, BFu0c_BFu0ll_BFu8i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu8ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu8ll, BFu0c_BFu0ll_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu8s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu8s lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_BFu8s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu8s, BFu0c_BFu0ll_BFu8s)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu9i");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu9i lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0ll_BFu9i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu9i, BFu0c_BFu0ll_BFu9i)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0ll_BFu9ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu9ll, BFu0c_BFu0ll_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu0ll_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu0ll_BFu9s");
    static STRUCT_IF_C BFu0c_BFu0ll_BFu9s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0ll_BFu9s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_BFu9s, BFu0c_BFu0ll_BFu9s)
//============================================================================



static void Test_BFu0c_BFu0ll_C()
{
  {
    init_simple_test("BFu0c_BFu0ll_C");
    static STRUCT_IF_C BFu0c_BFu0ll_C lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_C)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_C)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_C, BFu0c_BFu0ll_C)
//============================================================================



static void Test_BFu0c_BFu0ll_D()
{
  {
    init_simple_test("BFu0c_BFu0ll_D");
    static STRUCT_IF_C BFu0c_BFu0ll_D lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0ll_D)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_D)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_D, BFu0c_BFu0ll_D)
//============================================================================



static void Test_BFu0c_BFu0ll_F()
{
  {
    init_simple_test("BFu0c_BFu0ll_F");
    static STRUCT_IF_C BFu0c_BFu0ll_F lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu0ll_F)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_F)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_F, BFu0c_BFu0ll_F)
//============================================================================



static void Test_BFu0c_BFu0ll_I()
{
  {
    init_simple_test("BFu0c_BFu0ll_I");
    static STRUCT_IF_C BFu0c_BFu0ll_I lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu0ll_I)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_I)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_I, BFu0c_BFu0ll_I)
//============================================================================



static void Test_BFu0c_BFu0ll_Ip()
{
  {
    init_simple_test("BFu0c_BFu0ll_Ip");
    static STRUCT_IF_C BFu0c_BFu0ll_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu0ll_Ip)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_Ip)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_Ip, BFu0c_BFu0ll_Ip)
//============================================================================



static void Test_BFu0c_BFu0ll_L()
{
  {
    init_simple_test("BFu0c_BFu0ll_L");
    static STRUCT_IF_C BFu0c_BFu0ll_L lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0ll_L)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_L)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_L, BFu0c_BFu0ll_L)
//============================================================================



static void Test_BFu0c_BFu0ll_S()
{
  {
    init_simple_test("BFu0c_BFu0ll_S");
    static STRUCT_IF_C BFu0c_BFu0ll_S lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0ll_S)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_S)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_S, BFu0c_BFu0ll_S)
//============================================================================



static void Test_BFu0c_BFu0ll_Uc()
{
  {
    init_simple_test("BFu0c_BFu0ll_Uc");
    static STRUCT_IF_C BFu0c_BFu0ll_Uc lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0ll_Uc)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_Uc)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_Uc, BFu0c_BFu0ll_Uc)
//============================================================================



static void Test_BFu0c_BFu0ll_Ui()
{
  {
    init_simple_test("BFu0c_BFu0ll_Ui");
    static STRUCT_IF_C BFu0c_BFu0ll_Ui lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu0ll_Ui)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_Ui)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_Ui, BFu0c_BFu0ll_Ui)
//============================================================================



static void Test_BFu0c_BFu0ll_Ul()
{
  {
    init_simple_test("BFu0c_BFu0ll_Ul");
    static STRUCT_IF_C BFu0c_BFu0ll_Ul lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0ll_Ul)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_Ul)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_Ul, BFu0c_BFu0ll_Ul)
//============================================================================



static void Test_BFu0c_BFu0ll_Us()
{
  {
    init_simple_test("BFu0c_BFu0ll_Us");
    static STRUCT_IF_C BFu0c_BFu0ll_Us lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu0ll_Us)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_Us)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_Us, BFu0c_BFu0ll_Us)
//============================================================================



static void Test_BFu0c_BFu0ll_Vp()
{
  {
    init_simple_test("BFu0c_BFu0ll_Vp");
    static STRUCT_IF_C BFu0c_BFu0ll_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu0ll_Vp)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0ll_Vp)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0ll_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0ll_Vp, BFu0c_BFu0ll_Vp)
//============================================================================



static void Test_BFu0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s, BFu0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0c, BFu0c_BFu0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0c_BFs0c, BFu0c_BFu0s_BFs0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0c_BFs0i, BFu0c_BFu0s_BFs0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0c_BFs0ll, BFu0c_BFu0s_BFs0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0c_BFs0s, BFu0c_BFu0s_BFs0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0c_BFu0c, BFu0c_BFu0s_BFs0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0c_BFu0i, BFu0c_BFu0s_BFs0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0c_BFu0ll, BFu0c_BFu0s_BFs0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0c_BFu0s, BFu0c_BFu0s_BFs0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0i, BFu0c_BFu0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0i_BFs0c, BFu0c_BFu0s_BFs0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0i_BFs0i, BFu0c_BFu0s_BFs0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0i_BFs0ll, BFu0c_BFu0s_BFs0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0i_BFs0s, BFu0c_BFu0s_BFs0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0i_BFu0c, BFu0c_BFu0s_BFs0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0i_BFu0i, BFu0c_BFu0s_BFs0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0i_BFu0ll, BFu0c_BFu0s_BFs0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0i_BFu0s, BFu0c_BFu0s_BFs0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0ll, BFu0c_BFu0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0ll_BFs0c, BFu0c_BFu0s_BFs0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0ll_BFs0i, BFu0c_BFu0s_BFs0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0ll_BFs0ll, BFu0c_BFu0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0ll_BFs0s, BFu0c_BFu0s_BFs0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0ll_BFu0c, BFu0c_BFu0s_BFs0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0ll_BFu0i, BFu0c_BFu0s_BFs0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0ll_BFu0ll, BFu0c_BFu0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0ll_BFu0s, BFu0c_BFu0s_BFs0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0s, BFu0c_BFu0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0s_BFs0c, BFu0c_BFu0s_BFs0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0s_BFs0i, BFu0c_BFu0s_BFs0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0s_BFs0ll, BFu0c_BFu0s_BFs0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0s_BFs0s, BFu0c_BFu0s_BFs0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0s_BFu0c, BFu0c_BFu0s_BFs0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0s_BFu0i, BFu0c_BFu0s_BFs0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0s_BFu0ll, BFu0c_BFu0s_BFs0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFs0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFs0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFs0s_BFu0s, BFu0c_BFu0s_BFs0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0c, BFu0c_BFu0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0c_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0c_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0c_BFs0c, BFu0c_BFu0s_BFu0c_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0c_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0c_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0c_BFs0i, BFu0c_BFu0s_BFu0c_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0c_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0c_BFs0ll, BFu0c_BFu0s_BFu0c_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0c_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0c_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0c_BFs0s, BFu0c_BFu0s_BFu0c_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0c_BFu0c, BFu0c_BFu0s_BFu0c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0c_BFu0i, BFu0c_BFu0s_BFu0c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0c_BFu0ll, BFu0c_BFu0s_BFu0c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0c_BFu0s, BFu0c_BFu0s_BFu0c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0i, BFu0c_BFu0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0i_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0i_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0i_BFs0c, BFu0c_BFu0s_BFu0i_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0i_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0i_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0i_BFs0i, BFu0c_BFu0s_BFu0i_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0i_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0i_BFs0ll, BFu0c_BFu0s_BFu0i_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0i_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0i_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0i_BFs0s, BFu0c_BFu0s_BFu0i_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0i_BFu0c, BFu0c_BFu0s_BFu0i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0i_BFu0i, BFu0c_BFu0s_BFu0i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0i_BFu0ll, BFu0c_BFu0s_BFu0i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0i_BFu0s, BFu0c_BFu0s_BFu0i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0ll, BFu0c_BFu0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0ll_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0ll_BFs0c, BFu0c_BFu0s_BFu0ll_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0ll_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0ll_BFs0i, BFu0c_BFu0s_BFu0ll_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0ll_BFs0ll, BFu0c_BFu0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0ll_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0ll_BFs0s, BFu0c_BFu0s_BFu0ll_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0ll_BFu0c, BFu0c_BFu0s_BFu0ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0ll_BFu0i, BFu0c_BFu0s_BFu0ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0ll_BFu0ll, BFu0c_BFu0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0ll_BFu0s, BFu0c_BFu0s_BFu0ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0s, BFu0c_BFu0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0s_BFs0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0s_BFs0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0s_BFs0c, BFu0c_BFu0s_BFu0s_BFs0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0s_BFs0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0s_BFs0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0s_BFs0i, BFu0c_BFu0s_BFu0s_BFs0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0s_BFs0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0s_BFs0ll, BFu0c_BFu0s_BFu0s_BFs0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0s_BFs0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0s_BFs0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0s_BFs0s, BFu0c_BFu0s_BFu0s_BFs0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0s_BFu0c, BFu0c_BFu0s_BFu0s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0s_BFu0i, BFu0c_BFu0s_BFu0s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0s_BFu0ll, BFu0c_BFu0s_BFu0s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu0s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu0s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(BFu0c_BFu0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu0s_BFu0s, BFu0c_BFu0s_BFu0s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu15i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0s_BFu15i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu15i, BFu0c_BFu0s_BFu15i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0s_BFu15ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu15ll, BFu0c_BFu0s_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu15s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0s_BFu15s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu0s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu0s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu15s, BFu0c_BFu0s_BFu15s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu16i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0s_BFu16i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu16i, BFu0c_BFu0s_BFu16i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0s_BFu16ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu16ll, BFu0c_BFu0s_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu16s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0s_BFu16s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu0s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu0s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu16s, BFu0c_BFu0s_BFu16s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu17i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu17i lv;
    check2(sizeof(lv), ABISELECT(3,3), "sizeof(BFu0c_BFu0s_BFu17i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu0s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu0s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu17i, BFu0c_BFu0s_BFu17i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(3,3), "sizeof(BFu0c_BFu0s_BFu17ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu0s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu0s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu17ll, BFu0c_BFu0s_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu1c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu1c lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu1c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu1c, BFu0c_BFu0s_BFu1c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu1i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu1i lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu1i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu1i, BFu0c_BFu0s_BFu1i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu1ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu1ll, BFu0c_BFu0s_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu1s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu1s lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu1s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu0s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu1s, BFu0c_BFu0s_BFu1s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu31i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0s_BFu31i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu0s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu0s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu31i, BFu0c_BFu0s_BFu31i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0s_BFu31ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu0s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu0s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu31ll, BFu0c_BFu0s_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu32i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0s_BFu32i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu0s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu0s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu32i, BFu0c_BFu0s_BFu32i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0s_BFu32ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu0s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu0s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu32ll, BFu0c_BFu0s_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu33()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu33");
    static STRUCT_IF_C BFu0c_BFu0s_BFu33 lv;
    check2(sizeof(lv), ABISELECT(5,5), "sizeof(BFu0c_BFu0s_BFu33)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu0s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu0s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu33, BFu0c_BFu0s_BFu33)
//============================================================================



static void Test_BFu0c_BFu0s_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu7c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu7c lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu7c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu7c, BFu0c_BFu0s_BFu7c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu7i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu7i lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu7i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu7i, BFu0c_BFu0s_BFu7i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu7ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu7ll, BFu0c_BFu0s_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu7s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu7s lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu7s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu0s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu0s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu7s, BFu0c_BFu0s_BFu7s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu8c");
    static STRUCT_IF_C BFu0c_BFu0s_BFu8c lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu8c)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu8c, BFu0c_BFu0s_BFu8c)
//============================================================================



static void Test_BFu0c_BFu0s_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu8i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu8i lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu8i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu8i, BFu0c_BFu0s_BFu8i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu8ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu8ll, BFu0c_BFu0s_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu8s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu8s lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_BFu8s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu0c_BFu0s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu0s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu8s, BFu0c_BFu0s_BFu8s)
//============================================================================



static void Test_BFu0c_BFu0s_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu9i");
    static STRUCT_IF_C BFu0c_BFu0s_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0s_BFu9i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu9i, BFu0c_BFu0s_BFu9i)
//============================================================================



static void Test_BFu0c_BFu0s_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu0s_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0s_BFu9ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu9ll, BFu0c_BFu0s_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu0s_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu0s_BFu9s");
    static STRUCT_IF_C BFu0c_BFu0s_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0s_BFu9s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu0c_BFu0s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu0s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_BFu9s, BFu0c_BFu0s_BFu9s)
//============================================================================



static void Test_BFu0c_BFu0s_C()
{
  {
    init_simple_test("BFu0c_BFu0s_C");
    static STRUCT_IF_C BFu0c_BFu0s_C lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_C)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_C)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_C, BFu0c_BFu0s_C)
//============================================================================



static void Test_BFu0c_BFu0s_D()
{
  {
    init_simple_test("BFu0c_BFu0s_D");
    static STRUCT_IF_C BFu0c_BFu0s_D lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0s_D)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_D)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_D, BFu0c_BFu0s_D)
//============================================================================



static void Test_BFu0c_BFu0s_F()
{
  {
    init_simple_test("BFu0c_BFu0s_F");
    static STRUCT_IF_C BFu0c_BFu0s_F lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0s_F)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_F)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_F, BFu0c_BFu0s_F)
//============================================================================



static void Test_BFu0c_BFu0s_I()
{
  {
    init_simple_test("BFu0c_BFu0s_I");
    static STRUCT_IF_C BFu0c_BFu0s_I lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0s_I)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_I)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_I, BFu0c_BFu0s_I)
//============================================================================



static void Test_BFu0c_BFu0s_Ip()
{
  {
    init_simple_test("BFu0c_BFu0s_Ip");
    static STRUCT_IF_C BFu0c_BFu0s_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu0s_Ip)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_Ip)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_Ip, BFu0c_BFu0s_Ip)
//============================================================================



static void Test_BFu0c_BFu0s_L()
{
  {
    init_simple_test("BFu0c_BFu0s_L");
    static STRUCT_IF_C BFu0c_BFu0s_L lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0s_L)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_L)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_L, BFu0c_BFu0s_L)
//============================================================================



static void Test_BFu0c_BFu0s_S()
{
  {
    init_simple_test("BFu0c_BFu0s_S");
    static STRUCT_IF_C BFu0c_BFu0s_S lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0s_S)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_S)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_S, BFu0c_BFu0s_S)
//============================================================================



static void Test_BFu0c_BFu0s_Uc()
{
  {
    init_simple_test("BFu0c_BFu0s_Uc");
    static STRUCT_IF_C BFu0c_BFu0s_Uc lv;
    check2(sizeof(lv), ABISELECT(1,1), "sizeof(BFu0c_BFu0s_Uc)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_Uc)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_Uc, BFu0c_BFu0s_Uc)
//============================================================================



static void Test_BFu0c_BFu0s_Ui()
{
  {
    init_simple_test("BFu0c_BFu0s_Ui");
    static STRUCT_IF_C BFu0c_BFu0s_Ui lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu0s_Ui)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_Ui)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_Ui, BFu0c_BFu0s_Ui)
//============================================================================



static void Test_BFu0c_BFu0s_Ul()
{
  {
    init_simple_test("BFu0c_BFu0s_Ul");
    static STRUCT_IF_C BFu0c_BFu0s_Ul lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu0s_Ul)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_Ul)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_Ul, BFu0c_BFu0s_Ul)
//============================================================================



static void Test_BFu0c_BFu0s_Us()
{
  {
    init_simple_test("BFu0c_BFu0s_Us");
    static STRUCT_IF_C BFu0c_BFu0s_Us lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu0s_Us)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_Us)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_Us, BFu0c_BFu0s_Us)
//============================================================================



static void Test_BFu0c_BFu0s_Vp()
{
  {
    init_simple_test("BFu0c_BFu0s_Vp");
    static STRUCT_IF_C BFu0c_BFu0s_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu0s_Vp)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu0s_Vp)");
    check_field_offset(lv, v1, 0, "BFu0c_BFu0s_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu0s_Vp, BFu0c_BFu0s_Vp)
//============================================================================



static void Test_BFu0c_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu15i");
    static STRUCT_IF_C BFu0c_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i, BFu0c_BFu15i)
//============================================================================



static void Test_BFu0c_BFu15i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu15i_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu0c, BFu0c_BFu15i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu15i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu15i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu15i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu15i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu0i, BFu0c_BFu15i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu15i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu15i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu15i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu15i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu0ll, BFu0c_BFu15i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu15i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu15i_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu15i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu0s, BFu0c_BFu15i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu15i_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu15i");
    static STRUCT_IF_C BFu0c_BFu15i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "BFu0c_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu15i, BFu0c_BFu15i_BFu15i)
//============================================================================



static void Test_BFu0c_BFu15i_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu15i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "BFu0c_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu15ll, BFu0c_BFu15i_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu15i_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu15s");
    static STRUCT_IF_C BFu0c_BFu15i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "BFu0c_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu15s, BFu0c_BFu15i_BFu15s)
//============================================================================



static void Test_BFu0c_BFu15i_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu16i");
    static STRUCT_IF_C BFu0c_BFu15i_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "BFu0c_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu15i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu16i, BFu0c_BFu15i_BFu16i)
//============================================================================



static void Test_BFu0c_BFu15i_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu15i_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "BFu0c_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu15i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu16ll, BFu0c_BFu15i_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu15i_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu16s");
    static STRUCT_IF_C BFu0c_BFu15i_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "BFu0c_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu15i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu16s, BFu0c_BFu15i_BFu16s)
//============================================================================



static void Test_BFu0c_BFu15i_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu17i");
    static STRUCT_IF_C BFu0c_BFu15i_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "BFu0c_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu15i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu17i, BFu0c_BFu15i_BFu17i)
//============================================================================



static void Test_BFu0c_BFu15i_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu15i_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "BFu0c_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu15i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu17ll, BFu0c_BFu15i_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu15i_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu1c");
    static STRUCT_IF_C BFu0c_BFu15i_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu1c");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu1c, BFu0c_BFu15i_BFu1c)
//============================================================================



static void Test_BFu0c_BFu15i_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu1i");
    static STRUCT_IF_C BFu0c_BFu15i_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu1i");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu1i, BFu0c_BFu15i_BFu1i)
//============================================================================



static void Test_BFu0c_BFu15i_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu15i_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu1ll, BFu0c_BFu15i_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu15i_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu1s");
    static STRUCT_IF_C BFu0c_BFu15i_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu1s");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu1s, BFu0c_BFu15i_BFu1s)
//============================================================================



static void Test_BFu0c_BFu15i_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu31i");
    static STRUCT_IF_C BFu0c_BFu15i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "BFu0c_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu15i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu31i, BFu0c_BFu15i_BFu31i)
//============================================================================



static void Test_BFu0c_BFu15i_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu15i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "BFu0c_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu15i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu31ll, BFu0c_BFu15i_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu15i_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu32i");
    static STRUCT_IF_C BFu0c_BFu15i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "BFu0c_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu15i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu32i, BFu0c_BFu15i_BFu32i)
//============================================================================



static void Test_BFu0c_BFu15i_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu15i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "BFu0c_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu15i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu32ll, BFu0c_BFu15i_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu15i_BFu33()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu33");
    static STRUCT_IF_C BFu0c_BFu15i_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, 1, "BFu0c_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, hide_ull(1LL<<32), "BFu0c_BFu15i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu33, BFu0c_BFu15i_BFu33)
//============================================================================



static void Test_BFu0c_BFu15i_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu7c");
    static STRUCT_IF_C BFu0c_BFu15i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu7c, BFu0c_BFu15i_BFu7c)
//============================================================================



static void Test_BFu0c_BFu15i_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu7i");
    static STRUCT_IF_C BFu0c_BFu15i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu7i, BFu0c_BFu15i_BFu7i)
//============================================================================



static void Test_BFu0c_BFu15i_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu15i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu7ll, BFu0c_BFu15i_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu15i_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu7s");
    static STRUCT_IF_C BFu0c_BFu15i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu7s, BFu0c_BFu15i_BFu7s)
//============================================================================



static void Test_BFu0c_BFu15i_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu8c");
    static STRUCT_IF_C BFu0c_BFu15i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu8c, BFu0c_BFu15i_BFu8c)
//============================================================================



static void Test_BFu0c_BFu15i_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu8i");
    static STRUCT_IF_C BFu0c_BFu15i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu8i, BFu0c_BFu15i_BFu8i)
//============================================================================



static void Test_BFu0c_BFu15i_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu15i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu8ll, BFu0c_BFu15i_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu15i_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu8s");
    static STRUCT_IF_C BFu0c_BFu15i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu8s, BFu0c_BFu15i_BFu8s)
//============================================================================



static void Test_BFu0c_BFu15i_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu9i");
    static STRUCT_IF_C BFu0c_BFu15i_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "BFu0c_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu15i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu9i, BFu0c_BFu15i_BFu9i)
//============================================================================



static void Test_BFu0c_BFu15i_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu15i_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "BFu0c_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu15i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu9ll, BFu0c_BFu15i_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu15i_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu15i_BFu9s");
    static STRUCT_IF_C BFu0c_BFu15i_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "BFu0c_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu15i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_BFu9s, BFu0c_BFu15i_BFu9s)
//============================================================================



static void Test_BFu0c_BFu15i_C()
{
  {
    init_simple_test("BFu0c_BFu15i_C");
    static STRUCT_IF_C BFu0c_BFu15i_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_C)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_C");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_C");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_C, BFu0c_BFu15i_C)
//============================================================================



static void Test_BFu0c_BFu15i_D()
{
  {
    init_simple_test("BFu0c_BFu15i_D");
    static STRUCT_IF_C BFu0c_BFu15i_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu15i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_D)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_D");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_D");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_D, BFu0c_BFu15i_D)
//============================================================================



static void Test_BFu0c_BFu15i_F()
{
  {
    init_simple_test("BFu0c_BFu15i_F");
    static STRUCT_IF_C BFu0c_BFu15i_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_F)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_F");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_F");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_F, BFu0c_BFu15i_F)
//============================================================================



static void Test_BFu0c_BFu15i_I()
{
  {
    init_simple_test("BFu0c_BFu15i_I");
    static STRUCT_IF_C BFu0c_BFu15i_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_I)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_I");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_I");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_I, BFu0c_BFu15i_I)
//============================================================================



static void Test_BFu0c_BFu15i_Ip()
{
  {
    init_simple_test("BFu0c_BFu15i_Ip");
    static STRUCT_IF_C BFu0c_BFu15i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu15i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_Ip");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_Ip, BFu0c_BFu15i_Ip)
//============================================================================



static void Test_BFu0c_BFu15i_L()
{
  {
    init_simple_test("BFu0c_BFu15i_L");
    static STRUCT_IF_C BFu0c_BFu15i_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu15i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_L)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_L");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_L");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_L, BFu0c_BFu15i_L)
//============================================================================



static void Test_BFu0c_BFu15i_S()
{
  {
    init_simple_test("BFu0c_BFu15i_S");
    static STRUCT_IF_C BFu0c_BFu15i_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_S)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_S");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_S");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_S, BFu0c_BFu15i_S)
//============================================================================



static void Test_BFu0c_BFu15i_Uc()
{
  {
    init_simple_test("BFu0c_BFu15i_Uc");
    static STRUCT_IF_C BFu0c_BFu15i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_Uc");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_Uc, BFu0c_BFu15i_Uc)
//============================================================================



static void Test_BFu0c_BFu15i_Ui()
{
  {
    init_simple_test("BFu0c_BFu15i_Ui");
    static STRUCT_IF_C BFu0c_BFu15i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_Ui");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_Ui, BFu0c_BFu15i_Ui)
//============================================================================



static void Test_BFu0c_BFu15i_Ul()
{
  {
    init_simple_test("BFu0c_BFu15i_Ul");
    static STRUCT_IF_C BFu0c_BFu15i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu15i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_Ul");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_Ul, BFu0c_BFu15i_Ul)
//============================================================================



static void Test_BFu0c_BFu15i_Us()
{
  {
    init_simple_test("BFu0c_BFu15i_Us");
    static STRUCT_IF_C BFu0c_BFu15i_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_Us");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_Us");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_Us, BFu0c_BFu15i_Us)
//============================================================================



static void Test_BFu0c_BFu15i_Vp()
{
  {
    init_simple_test("BFu0c_BFu15i_Vp");
    static STRUCT_IF_C BFu0c_BFu15i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu15i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15i_Vp");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15i_Vp, BFu0c_BFu15i_Vp)
//============================================================================



static void Test_BFu0c_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll, BFu0c_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu0c, BFu0c_BFu15ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu15ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu15ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu0i, BFu0c_BFu15ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu15ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu15ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu0ll, BFu0c_BFu15ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu15ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu0s, BFu0c_BFu15ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu15i");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "BFu0c_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu15i, BFu0c_BFu15ll_BFu15i)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "BFu0c_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu15ll, BFu0c_BFu15ll_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu15s");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "BFu0c_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu15s, BFu0c_BFu15ll_BFu15s)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu16i");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "BFu0c_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu15ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu16i, BFu0c_BFu15ll_BFu16i)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "BFu0c_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu15ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu16ll, BFu0c_BFu15ll_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu16s");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "BFu0c_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu15ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu16s, BFu0c_BFu15ll_BFu16s)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu17i");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "BFu0c_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu15ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu17i, BFu0c_BFu15ll_BFu17i)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "BFu0c_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu15ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu17ll, BFu0c_BFu15ll_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu1c");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu1c, BFu0c_BFu15ll_BFu1c)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu1i");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu1i, BFu0c_BFu15ll_BFu1i)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu1ll, BFu0c_BFu15ll_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu1s");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu1s, BFu0c_BFu15ll_BFu1s)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu31i");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "BFu0c_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu15ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu31i, BFu0c_BFu15ll_BFu31i)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "BFu0c_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu15ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu31ll, BFu0c_BFu15ll_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu32i");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "BFu0c_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu15ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu32i, BFu0c_BFu15ll_BFu32i)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "BFu0c_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu15ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu32ll, BFu0c_BFu15ll_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu33()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu33");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, 1, "BFu0c_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, hide_ull(1LL<<32), "BFu0c_BFu15ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu33, BFu0c_BFu15ll_BFu33)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu7c");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu7c, BFu0c_BFu15ll_BFu7c)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu7i");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu7i, BFu0c_BFu15ll_BFu7i)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu7ll, BFu0c_BFu15ll_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu7s");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu7s, BFu0c_BFu15ll_BFu7s)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu8c");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu8c, BFu0c_BFu15ll_BFu8c)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu8i");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu8i, BFu0c_BFu15ll_BFu8i)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu8ll, BFu0c_BFu15ll_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu8s");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu8s, BFu0c_BFu15ll_BFu8s)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu9i");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "BFu0c_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu15ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu9i, BFu0c_BFu15ll_BFu9i)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "BFu0c_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu15ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu9ll, BFu0c_BFu15ll_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu15ll_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu15ll_BFu9s");
    static STRUCT_IF_C BFu0c_BFu15ll_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "BFu0c_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu15ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_BFu9s, BFu0c_BFu15ll_BFu9s)
//============================================================================



static void Test_BFu0c_BFu15ll_C()
{
  {
    init_simple_test("BFu0c_BFu15ll_C");
    static STRUCT_IF_C BFu0c_BFu15ll_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_C");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_C");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_C, BFu0c_BFu15ll_C)
//============================================================================



static void Test_BFu0c_BFu15ll_D()
{
  {
    init_simple_test("BFu0c_BFu15ll_D");
    static STRUCT_IF_C BFu0c_BFu15ll_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu15ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_D");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_D");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_D, BFu0c_BFu15ll_D)
//============================================================================



static void Test_BFu0c_BFu15ll_F()
{
  {
    init_simple_test("BFu0c_BFu15ll_F");
    static STRUCT_IF_C BFu0c_BFu15ll_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_F");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_F");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_F, BFu0c_BFu15ll_F)
//============================================================================



static void Test_BFu0c_BFu15ll_I()
{
  {
    init_simple_test("BFu0c_BFu15ll_I");
    static STRUCT_IF_C BFu0c_BFu15ll_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_I");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_I");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_I, BFu0c_BFu15ll_I)
//============================================================================



static void Test_BFu0c_BFu15ll_Ip()
{
  {
    init_simple_test("BFu0c_BFu15ll_Ip");
    static STRUCT_IF_C BFu0c_BFu15ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu15ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_Ip");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_Ip, BFu0c_BFu15ll_Ip)
//============================================================================



static void Test_BFu0c_BFu15ll_L()
{
  {
    init_simple_test("BFu0c_BFu15ll_L");
    static STRUCT_IF_C BFu0c_BFu15ll_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu15ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_L");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_L");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_L, BFu0c_BFu15ll_L)
//============================================================================



static void Test_BFu0c_BFu15ll_S()
{
  {
    init_simple_test("BFu0c_BFu15ll_S");
    static STRUCT_IF_C BFu0c_BFu15ll_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_S");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_S");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_S, BFu0c_BFu15ll_S)
//============================================================================



static void Test_BFu0c_BFu15ll_Uc()
{
  {
    init_simple_test("BFu0c_BFu15ll_Uc");
    static STRUCT_IF_C BFu0c_BFu15ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_Uc");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_Uc, BFu0c_BFu15ll_Uc)
//============================================================================



static void Test_BFu0c_BFu15ll_Ui()
{
  {
    init_simple_test("BFu0c_BFu15ll_Ui");
    static STRUCT_IF_C BFu0c_BFu15ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_Ui");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_Ui, BFu0c_BFu15ll_Ui)
//============================================================================



static void Test_BFu0c_BFu15ll_Ul()
{
  {
    init_simple_test("BFu0c_BFu15ll_Ul");
    static STRUCT_IF_C BFu0c_BFu15ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu15ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_Ul");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_Ul, BFu0c_BFu15ll_Ul)
//============================================================================



static void Test_BFu0c_BFu15ll_Us()
{
  {
    init_simple_test("BFu0c_BFu15ll_Us");
    static STRUCT_IF_C BFu0c_BFu15ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_Us");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_Us, BFu0c_BFu15ll_Us)
//============================================================================



static void Test_BFu0c_BFu15ll_Vp()
{
  {
    init_simple_test("BFu0c_BFu15ll_Vp");
    static STRUCT_IF_C BFu0c_BFu15ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu15ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15ll_Vp");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15ll_Vp, BFu0c_BFu15ll_Vp)
//============================================================================



static void Test_BFu0c_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu15s");
    static STRUCT_IF_C BFu0c_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s, BFu0c_BFu15s)
//============================================================================



static void Test_BFu0c_BFu15s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu15s_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu0c, BFu0c_BFu15s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu15s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu15s_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu15s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu15s_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu0i, BFu0c_BFu15s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu15s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu15s_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu15s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu15s_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu0ll, BFu0c_BFu15s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu15s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu15s_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu15s_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu0s, BFu0c_BFu15s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu15s_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu15i");
    static STRUCT_IF_C BFu0c_BFu15s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "BFu0c_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu15i, BFu0c_BFu15s_BFu15i)
//============================================================================



static void Test_BFu0c_BFu15s_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu15s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "BFu0c_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu15ll, BFu0c_BFu15s_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu15s_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu15s");
    static STRUCT_IF_C BFu0c_BFu15s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "BFu0c_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu15s, BFu0c_BFu15s_BFu15s)
//============================================================================



static void Test_BFu0c_BFu15s_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu16i");
    static STRUCT_IF_C BFu0c_BFu15s_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "BFu0c_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu15s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu16i, BFu0c_BFu15s_BFu16i)
//============================================================================



static void Test_BFu0c_BFu15s_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu15s_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "BFu0c_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu15s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu16ll, BFu0c_BFu15s_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu15s_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu16s");
    static STRUCT_IF_C BFu0c_BFu15s_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "BFu0c_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu15s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu16s, BFu0c_BFu15s_BFu16s)
//============================================================================



static void Test_BFu0c_BFu15s_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu17i");
    static STRUCT_IF_C BFu0c_BFu15s_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "BFu0c_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu15s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu17i, BFu0c_BFu15s_BFu17i)
//============================================================================



static void Test_BFu0c_BFu15s_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu15s_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "BFu0c_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu15s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu17ll, BFu0c_BFu15s_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu15s_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu1c");
    static STRUCT_IF_C BFu0c_BFu15s_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu1c");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu1c, BFu0c_BFu15s_BFu1c)
//============================================================================



static void Test_BFu0c_BFu15s_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu1i");
    static STRUCT_IF_C BFu0c_BFu15s_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu1i");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu1i, BFu0c_BFu15s_BFu1i)
//============================================================================



static void Test_BFu0c_BFu15s_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu15s_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu1ll, BFu0c_BFu15s_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu15s_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu1s");
    static STRUCT_IF_C BFu0c_BFu15s_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu15s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu1s");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "BFu0c_BFu15s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu1s, BFu0c_BFu15s_BFu1s)
//============================================================================



static void Test_BFu0c_BFu15s_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu31i");
    static STRUCT_IF_C BFu0c_BFu15s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "BFu0c_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu15s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu31i, BFu0c_BFu15s_BFu31i)
//============================================================================



static void Test_BFu0c_BFu15s_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu15s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "BFu0c_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu15s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu31ll, BFu0c_BFu15s_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu15s_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu32i");
    static STRUCT_IF_C BFu0c_BFu15s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "BFu0c_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu15s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu32i, BFu0c_BFu15s_BFu32i)
//============================================================================



static void Test_BFu0c_BFu15s_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu15s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "BFu0c_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu15s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu32ll, BFu0c_BFu15s_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu15s_BFu33()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu33");
    static STRUCT_IF_C BFu0c_BFu15s_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, 1, "BFu0c_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, hide_ull(1LL<<32), "BFu0c_BFu15s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu33, BFu0c_BFu15s_BFu33)
//============================================================================



static void Test_BFu0c_BFu15s_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu7c");
    static STRUCT_IF_C BFu0c_BFu15s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu7c, BFu0c_BFu15s_BFu7c)
//============================================================================



static void Test_BFu0c_BFu15s_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu7i");
    static STRUCT_IF_C BFu0c_BFu15s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu7i, BFu0c_BFu15s_BFu7i)
//============================================================================



static void Test_BFu0c_BFu15s_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu15s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu7ll, BFu0c_BFu15s_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu15s_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu7s");
    static STRUCT_IF_C BFu0c_BFu15s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "BFu0c_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu15s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu7s, BFu0c_BFu15s_BFu7s)
//============================================================================



static void Test_BFu0c_BFu15s_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu8c");
    static STRUCT_IF_C BFu0c_BFu15s_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu8c, BFu0c_BFu15s_BFu8c)
//============================================================================



static void Test_BFu0c_BFu15s_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu8i");
    static STRUCT_IF_C BFu0c_BFu15s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu8i, BFu0c_BFu15s_BFu8i)
//============================================================================



static void Test_BFu0c_BFu15s_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu15s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu8ll, BFu0c_BFu15s_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu15s_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu8s");
    static STRUCT_IF_C BFu0c_BFu15s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "BFu0c_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu15s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu8s, BFu0c_BFu15s_BFu8s)
//============================================================================



static void Test_BFu0c_BFu15s_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu9i");
    static STRUCT_IF_C BFu0c_BFu15s_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "BFu0c_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu15s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu9i, BFu0c_BFu15s_BFu9i)
//============================================================================



static void Test_BFu0c_BFu15s_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu15s_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "BFu0c_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu15s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu9ll, BFu0c_BFu15s_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu15s_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu15s_BFu9s");
    static STRUCT_IF_C BFu0c_BFu15s_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "BFu0c_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu15s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_BFu9s, BFu0c_BFu15s_BFu9s)
//============================================================================



static void Test_BFu0c_BFu15s_C()
{
  {
    init_simple_test("BFu0c_BFu15s_C");
    static STRUCT_IF_C BFu0c_BFu15s_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_C)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_C");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_C");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_C, BFu0c_BFu15s_C)
//============================================================================



static void Test_BFu0c_BFu15s_D()
{
  {
    init_simple_test("BFu0c_BFu15s_D");
    static STRUCT_IF_C BFu0c_BFu15s_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu15s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_D)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_D");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_D");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_D, BFu0c_BFu15s_D)
//============================================================================



static void Test_BFu0c_BFu15s_F()
{
  {
    init_simple_test("BFu0c_BFu15s_F");
    static STRUCT_IF_C BFu0c_BFu15s_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_F)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_F");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_F");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_F, BFu0c_BFu15s_F)
//============================================================================



static void Test_BFu0c_BFu15s_I()
{
  {
    init_simple_test("BFu0c_BFu15s_I");
    static STRUCT_IF_C BFu0c_BFu15s_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_I)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_I");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_I");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_I, BFu0c_BFu15s_I)
//============================================================================



static void Test_BFu0c_BFu15s_Ip()
{
  {
    init_simple_test("BFu0c_BFu15s_Ip");
    static STRUCT_IF_C BFu0c_BFu15s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu15s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_Ip");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_Ip, BFu0c_BFu15s_Ip)
//============================================================================



static void Test_BFu0c_BFu15s_L()
{
  {
    init_simple_test("BFu0c_BFu15s_L");
    static STRUCT_IF_C BFu0c_BFu15s_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu15s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_L)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_L");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_L");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_L, BFu0c_BFu15s_L)
//============================================================================



static void Test_BFu0c_BFu15s_S()
{
  {
    init_simple_test("BFu0c_BFu15s_S");
    static STRUCT_IF_C BFu0c_BFu15s_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_S)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_S");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_S");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_S, BFu0c_BFu15s_S)
//============================================================================



static void Test_BFu0c_BFu15s_Uc()
{
  {
    init_simple_test("BFu0c_BFu15s_Uc");
    static STRUCT_IF_C BFu0c_BFu15s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu15s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_Uc");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_Uc, BFu0c_BFu15s_Uc)
//============================================================================



static void Test_BFu0c_BFu15s_Ui()
{
  {
    init_simple_test("BFu0c_BFu15s_Ui");
    static STRUCT_IF_C BFu0c_BFu15s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu15s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_Ui");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_Ui, BFu0c_BFu15s_Ui)
//============================================================================



static void Test_BFu0c_BFu15s_Ul()
{
  {
    init_simple_test("BFu0c_BFu15s_Ul");
    static STRUCT_IF_C BFu0c_BFu15s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu15s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_Ul");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_Ul, BFu0c_BFu15s_Ul)
//============================================================================



static void Test_BFu0c_BFu15s_Us()
{
  {
    init_simple_test("BFu0c_BFu15s_Us");
    static STRUCT_IF_C BFu0c_BFu15s_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu15s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_Us");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_Us");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_Us, BFu0c_BFu15s_Us)
//============================================================================



static void Test_BFu0c_BFu15s_Vp()
{
  {
    init_simple_test("BFu0c_BFu15s_Vp");
    static STRUCT_IF_C BFu0c_BFu15s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu15s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu15s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "BFu0c_BFu15s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu15s_Vp");
    check_field_offset(lv, v2, 2, "BFu0c_BFu15s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu15s_Vp, BFu0c_BFu15s_Vp)
//============================================================================



static void Test_BFu0c_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu16i");
    static STRUCT_IF_C BFu0c_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i, BFu0c_BFu16i)
//============================================================================



static void Test_BFu0c_BFu16i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu16i_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu16i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu0c, BFu0c_BFu16i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu16i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu16i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu16i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu16i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu0i, BFu0c_BFu16i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu16i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu16i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu16i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu16i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu0ll, BFu0c_BFu16i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu16i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu16i_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu16i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu16i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu0s, BFu0c_BFu16i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu16i_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu15i");
    static STRUCT_IF_C BFu0c_BFu16i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "BFu0c_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu16i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu15i, BFu0c_BFu16i_BFu15i)
//============================================================================



static void Test_BFu0c_BFu16i_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu16i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "BFu0c_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu16i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu15ll, BFu0c_BFu16i_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu16i_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu15s");
    static STRUCT_IF_C BFu0c_BFu16i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "BFu0c_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu16i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu15s, BFu0c_BFu16i_BFu15s)
//============================================================================



static void Test_BFu0c_BFu16i_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu16i");
    static STRUCT_IF_C BFu0c_BFu16i_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "BFu0c_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu16i, BFu0c_BFu16i_BFu16i)
//============================================================================



static void Test_BFu0c_BFu16i_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu16i_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "BFu0c_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu16ll, BFu0c_BFu16i_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu16i_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu16s");
    static STRUCT_IF_C BFu0c_BFu16i_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "BFu0c_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu16s, BFu0c_BFu16i_BFu16s)
//============================================================================



static void Test_BFu0c_BFu16i_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu17i");
    static STRUCT_IF_C BFu0c_BFu16i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu16i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "BFu0c_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu16i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu17i, BFu0c_BFu16i_BFu17i)
//============================================================================



static void Test_BFu0c_BFu16i_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu16i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu16i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "BFu0c_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu16i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu17ll, BFu0c_BFu16i_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu16i_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu1c");
    static STRUCT_IF_C BFu0c_BFu16i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu1c");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu1c, BFu0c_BFu16i_BFu1c)
//============================================================================



static void Test_BFu0c_BFu16i_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu1i");
    static STRUCT_IF_C BFu0c_BFu16i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu1i");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu1i, BFu0c_BFu16i_BFu1i)
//============================================================================



static void Test_BFu0c_BFu16i_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu16i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu1ll");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu1ll, BFu0c_BFu16i_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu16i_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu1s");
    static STRUCT_IF_C BFu0c_BFu16i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu1s");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu1s, BFu0c_BFu16i_BFu1s)
//============================================================================



static void Test_BFu0c_BFu16i_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu31i");
    static STRUCT_IF_C BFu0c_BFu16i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "BFu0c_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu16i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu31i, BFu0c_BFu16i_BFu31i)
//============================================================================



static void Test_BFu0c_BFu16i_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu16i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "BFu0c_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu16i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu31ll, BFu0c_BFu16i_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu16i_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu32i");
    static STRUCT_IF_C BFu0c_BFu16i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "BFu0c_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu16i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu32i, BFu0c_BFu16i_BFu32i)
//============================================================================



static void Test_BFu0c_BFu16i_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu16i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "BFu0c_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu16i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu32ll, BFu0c_BFu16i_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu16i_BFu33()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu33");
    static STRUCT_IF_C BFu0c_BFu16i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu16i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, 1, "BFu0c_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu16i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu33, BFu0c_BFu16i_BFu33)
//============================================================================



static void Test_BFu0c_BFu16i_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu7c");
    static STRUCT_IF_C BFu0c_BFu16i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu7c, BFu0c_BFu16i_BFu7c)
//============================================================================



static void Test_BFu0c_BFu16i_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu7i");
    static STRUCT_IF_C BFu0c_BFu16i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu7i, BFu0c_BFu16i_BFu7i)
//============================================================================



static void Test_BFu0c_BFu16i_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu16i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu7ll, BFu0c_BFu16i_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu16i_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu7s");
    static STRUCT_IF_C BFu0c_BFu16i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu7s, BFu0c_BFu16i_BFu7s)
//============================================================================



static void Test_BFu0c_BFu16i_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu8c");
    static STRUCT_IF_C BFu0c_BFu16i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu8c, BFu0c_BFu16i_BFu8c)
//============================================================================



static void Test_BFu0c_BFu16i_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu8i");
    static STRUCT_IF_C BFu0c_BFu16i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu8i, BFu0c_BFu16i_BFu8i)
//============================================================================



static void Test_BFu0c_BFu16i_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu16i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu8ll, BFu0c_BFu16i_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu16i_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu8s");
    static STRUCT_IF_C BFu0c_BFu16i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu8s, BFu0c_BFu16i_BFu8s)
//============================================================================



static void Test_BFu0c_BFu16i_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu9i");
    static STRUCT_IF_C BFu0c_BFu16i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "BFu0c_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu16i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu9i, BFu0c_BFu16i_BFu9i)
//============================================================================



static void Test_BFu0c_BFu16i_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu16i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "BFu0c_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu16i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu9ll, BFu0c_BFu16i_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu16i_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu16i_BFu9s");
    static STRUCT_IF_C BFu0c_BFu16i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "BFu0c_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu16i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_BFu9s, BFu0c_BFu16i_BFu9s)
//============================================================================



static void Test_BFu0c_BFu16i_C()
{
  {
    init_simple_test("BFu0c_BFu16i_C");
    static STRUCT_IF_C BFu0c_BFu16i_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_C)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_C");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_C");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_C, BFu0c_BFu16i_C)
//============================================================================



static void Test_BFu0c_BFu16i_D()
{
  {
    init_simple_test("BFu0c_BFu16i_D");
    static STRUCT_IF_C BFu0c_BFu16i_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu16i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_D)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_D");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_D");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_D, BFu0c_BFu16i_D)
//============================================================================



static void Test_BFu0c_BFu16i_F()
{
  {
    init_simple_test("BFu0c_BFu16i_F");
    static STRUCT_IF_C BFu0c_BFu16i_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_F)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_F");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_F");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_F, BFu0c_BFu16i_F)
//============================================================================



static void Test_BFu0c_BFu16i_I()
{
  {
    init_simple_test("BFu0c_BFu16i_I");
    static STRUCT_IF_C BFu0c_BFu16i_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_I)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_I");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_I");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_I, BFu0c_BFu16i_I)
//============================================================================



static void Test_BFu0c_BFu16i_Ip()
{
  {
    init_simple_test("BFu0c_BFu16i_Ip");
    static STRUCT_IF_C BFu0c_BFu16i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu16i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_Ip");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_Ip, BFu0c_BFu16i_Ip)
//============================================================================



static void Test_BFu0c_BFu16i_L()
{
  {
    init_simple_test("BFu0c_BFu16i_L");
    static STRUCT_IF_C BFu0c_BFu16i_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu16i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_L)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_L");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_L");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_L, BFu0c_BFu16i_L)
//============================================================================



static void Test_BFu0c_BFu16i_S()
{
  {
    init_simple_test("BFu0c_BFu16i_S");
    static STRUCT_IF_C BFu0c_BFu16i_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_S)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_S");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_S");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_S, BFu0c_BFu16i_S)
//============================================================================



static void Test_BFu0c_BFu16i_Uc()
{
  {
    init_simple_test("BFu0c_BFu16i_Uc");
    static STRUCT_IF_C BFu0c_BFu16i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_Uc");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_Uc, BFu0c_BFu16i_Uc)
//============================================================================



static void Test_BFu0c_BFu16i_Ui()
{
  {
    init_simple_test("BFu0c_BFu16i_Ui");
    static STRUCT_IF_C BFu0c_BFu16i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_Ui");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_Ui, BFu0c_BFu16i_Ui)
//============================================================================



static void Test_BFu0c_BFu16i_Ul()
{
  {
    init_simple_test("BFu0c_BFu16i_Ul");
    static STRUCT_IF_C BFu0c_BFu16i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu16i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_Ul");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_Ul, BFu0c_BFu16i_Ul)
//============================================================================



static void Test_BFu0c_BFu16i_Us()
{
  {
    init_simple_test("BFu0c_BFu16i_Us");
    static STRUCT_IF_C BFu0c_BFu16i_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_Us");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_Us");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_Us, BFu0c_BFu16i_Us)
//============================================================================



static void Test_BFu0c_BFu16i_Vp()
{
  {
    init_simple_test("BFu0c_BFu16i_Vp");
    static STRUCT_IF_C BFu0c_BFu16i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu16i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16i_Vp");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16i_Vp, BFu0c_BFu16i_Vp)
//============================================================================



static void Test_BFu0c_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll, BFu0c_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu16ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu0c, BFu0c_BFu16ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu16ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu16ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu0i, BFu0c_BFu16ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu16ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu16ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu0ll, BFu0c_BFu16ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu16ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu16ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu0s, BFu0c_BFu16ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu15i");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "BFu0c_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu16ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu15i, BFu0c_BFu16ll_BFu15i)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "BFu0c_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu16ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu15ll, BFu0c_BFu16ll_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu15s");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "BFu0c_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu16ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu15s, BFu0c_BFu16ll_BFu15s)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu16i");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "BFu0c_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu16i, BFu0c_BFu16ll_BFu16i)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "BFu0c_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu16ll, BFu0c_BFu16ll_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu16s");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "BFu0c_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu16s, BFu0c_BFu16ll_BFu16s)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu17i");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu16ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "BFu0c_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu16ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu17i, BFu0c_BFu16ll_BFu17i)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu16ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "BFu0c_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu16ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu17ll, BFu0c_BFu16ll_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu1c");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu1c");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu1c, BFu0c_BFu16ll_BFu1c)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu1i");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu1i");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu1i, BFu0c_BFu16ll_BFu1i)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu1ll, BFu0c_BFu16ll_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu1s");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu1s");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu1s, BFu0c_BFu16ll_BFu1s)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu31i");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "BFu0c_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu16ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu31i, BFu0c_BFu16ll_BFu31i)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "BFu0c_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu16ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu31ll, BFu0c_BFu16ll_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu32i");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "BFu0c_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu16ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu32i, BFu0c_BFu16ll_BFu32i)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "BFu0c_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu16ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu32ll, BFu0c_BFu16ll_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu33()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu33");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu16ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, 1, "BFu0c_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu16ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu33, BFu0c_BFu16ll_BFu33)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu7c");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu7c, BFu0c_BFu16ll_BFu7c)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu7i");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu7i, BFu0c_BFu16ll_BFu7i)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu7ll, BFu0c_BFu16ll_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu7s");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu7s, BFu0c_BFu16ll_BFu7s)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu8c");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu8c, BFu0c_BFu16ll_BFu8c)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu8i");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu8i, BFu0c_BFu16ll_BFu8i)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu8ll, BFu0c_BFu16ll_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu8s");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu8s, BFu0c_BFu16ll_BFu8s)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu9i");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "BFu0c_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu16ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu9i, BFu0c_BFu16ll_BFu9i)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "BFu0c_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu16ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu9ll, BFu0c_BFu16ll_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu16ll_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu16ll_BFu9s");
    static STRUCT_IF_C BFu0c_BFu16ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "BFu0c_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu16ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_BFu9s, BFu0c_BFu16ll_BFu9s)
//============================================================================



static void Test_BFu0c_BFu16ll_C()
{
  {
    init_simple_test("BFu0c_BFu16ll_C");
    static STRUCT_IF_C BFu0c_BFu16ll_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_C");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_C");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_C, BFu0c_BFu16ll_C)
//============================================================================



static void Test_BFu0c_BFu16ll_D()
{
  {
    init_simple_test("BFu0c_BFu16ll_D");
    static STRUCT_IF_C BFu0c_BFu16ll_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu16ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_D");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_D");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_D, BFu0c_BFu16ll_D)
//============================================================================



static void Test_BFu0c_BFu16ll_F()
{
  {
    init_simple_test("BFu0c_BFu16ll_F");
    static STRUCT_IF_C BFu0c_BFu16ll_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_F");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_F");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_F, BFu0c_BFu16ll_F)
//============================================================================



static void Test_BFu0c_BFu16ll_I()
{
  {
    init_simple_test("BFu0c_BFu16ll_I");
    static STRUCT_IF_C BFu0c_BFu16ll_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_I");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_I");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_I, BFu0c_BFu16ll_I)
//============================================================================



static void Test_BFu0c_BFu16ll_Ip()
{
  {
    init_simple_test("BFu0c_BFu16ll_Ip");
    static STRUCT_IF_C BFu0c_BFu16ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu16ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_Ip");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_Ip, BFu0c_BFu16ll_Ip)
//============================================================================



static void Test_BFu0c_BFu16ll_L()
{
  {
    init_simple_test("BFu0c_BFu16ll_L");
    static STRUCT_IF_C BFu0c_BFu16ll_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu16ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_L");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_L");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_L, BFu0c_BFu16ll_L)
//============================================================================



static void Test_BFu0c_BFu16ll_S()
{
  {
    init_simple_test("BFu0c_BFu16ll_S");
    static STRUCT_IF_C BFu0c_BFu16ll_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_S");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_S");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_S, BFu0c_BFu16ll_S)
//============================================================================



static void Test_BFu0c_BFu16ll_Uc()
{
  {
    init_simple_test("BFu0c_BFu16ll_Uc");
    static STRUCT_IF_C BFu0c_BFu16ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_Uc");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_Uc, BFu0c_BFu16ll_Uc)
//============================================================================



static void Test_BFu0c_BFu16ll_Ui()
{
  {
    init_simple_test("BFu0c_BFu16ll_Ui");
    static STRUCT_IF_C BFu0c_BFu16ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_Ui");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_Ui, BFu0c_BFu16ll_Ui)
//============================================================================



static void Test_BFu0c_BFu16ll_Ul()
{
  {
    init_simple_test("BFu0c_BFu16ll_Ul");
    static STRUCT_IF_C BFu0c_BFu16ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu16ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_Ul");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_Ul, BFu0c_BFu16ll_Ul)
//============================================================================



static void Test_BFu0c_BFu16ll_Us()
{
  {
    init_simple_test("BFu0c_BFu16ll_Us");
    static STRUCT_IF_C BFu0c_BFu16ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_Us");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_Us, BFu0c_BFu16ll_Us)
//============================================================================



static void Test_BFu0c_BFu16ll_Vp()
{
  {
    init_simple_test("BFu0c_BFu16ll_Vp");
    static STRUCT_IF_C BFu0c_BFu16ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu16ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16ll_Vp");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16ll_Vp, BFu0c_BFu16ll_Vp)
//============================================================================



static void Test_BFu0c_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu16s");
    static STRUCT_IF_C BFu0c_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s, BFu0c_BFu16s)
//============================================================================



static void Test_BFu0c_BFu16s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu16s_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu16s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu0c, BFu0c_BFu16s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu16s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu16s_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu16s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu16s_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu0i, BFu0c_BFu16s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu16s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu16s_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu16s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu16s_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu0ll, BFu0c_BFu16s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu16s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu16s_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu16s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu16s_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu0s, BFu0c_BFu16s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu16s_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu15i");
    static STRUCT_IF_C BFu0c_BFu16s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "BFu0c_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu16s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu15i, BFu0c_BFu16s_BFu15i)
//============================================================================



static void Test_BFu0c_BFu16s_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu16s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "BFu0c_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu16s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu15ll, BFu0c_BFu16s_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu16s_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu15s");
    static STRUCT_IF_C BFu0c_BFu16s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "BFu0c_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu16s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu15s, BFu0c_BFu16s_BFu15s)
//============================================================================



static void Test_BFu0c_BFu16s_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu16i");
    static STRUCT_IF_C BFu0c_BFu16s_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "BFu0c_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu16i, BFu0c_BFu16s_BFu16i)
//============================================================================



static void Test_BFu0c_BFu16s_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu16s_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "BFu0c_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu16ll, BFu0c_BFu16s_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu16s_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu16s");
    static STRUCT_IF_C BFu0c_BFu16s_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "BFu0c_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu16s, BFu0c_BFu16s_BFu16s)
//============================================================================



static void Test_BFu0c_BFu16s_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu17i");
    static STRUCT_IF_C BFu0c_BFu16s_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu16s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "BFu0c_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu16s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu17i, BFu0c_BFu16s_BFu17i)
//============================================================================



static void Test_BFu0c_BFu16s_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu16s_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu16s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "BFu0c_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu16s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu17ll, BFu0c_BFu16s_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu16s_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu1c");
    static STRUCT_IF_C BFu0c_BFu16s_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu1c");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu1c, BFu0c_BFu16s_BFu1c)
//============================================================================



static void Test_BFu0c_BFu16s_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu1i");
    static STRUCT_IF_C BFu0c_BFu16s_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu1i");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu1i, BFu0c_BFu16s_BFu1i)
//============================================================================



static void Test_BFu0c_BFu16s_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu16s_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu1ll");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu1ll, BFu0c_BFu16s_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu16s_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu1s");
    static STRUCT_IF_C BFu0c_BFu16s_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu1s");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "BFu0c_BFu16s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu1s, BFu0c_BFu16s_BFu1s)
//============================================================================



static void Test_BFu0c_BFu16s_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu31i");
    static STRUCT_IF_C BFu0c_BFu16s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "BFu0c_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu16s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu31i, BFu0c_BFu16s_BFu31i)
//============================================================================



static void Test_BFu0c_BFu16s_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu16s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "BFu0c_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu16s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu31ll, BFu0c_BFu16s_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu16s_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu32i");
    static STRUCT_IF_C BFu0c_BFu16s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "BFu0c_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu16s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu32i, BFu0c_BFu16s_BFu32i)
//============================================================================



static void Test_BFu0c_BFu16s_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu16s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "BFu0c_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu16s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu32ll, BFu0c_BFu16s_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu16s_BFu33()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu33");
    static STRUCT_IF_C BFu0c_BFu16s_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu16s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, 1, "BFu0c_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu16s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu33, BFu0c_BFu16s_BFu33)
//============================================================================



static void Test_BFu0c_BFu16s_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu7c");
    static STRUCT_IF_C BFu0c_BFu16s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu7c, BFu0c_BFu16s_BFu7c)
//============================================================================



static void Test_BFu0c_BFu16s_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu7i");
    static STRUCT_IF_C BFu0c_BFu16s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu7i, BFu0c_BFu16s_BFu7i)
//============================================================================



static void Test_BFu0c_BFu16s_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu16s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu7ll, BFu0c_BFu16s_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu16s_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu7s");
    static STRUCT_IF_C BFu0c_BFu16s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "BFu0c_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu16s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu7s, BFu0c_BFu16s_BFu7s)
//============================================================================



static void Test_BFu0c_BFu16s_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu8c");
    static STRUCT_IF_C BFu0c_BFu16s_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu8c, BFu0c_BFu16s_BFu8c)
//============================================================================



static void Test_BFu0c_BFu16s_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu8i");
    static STRUCT_IF_C BFu0c_BFu16s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu8i, BFu0c_BFu16s_BFu8i)
//============================================================================



static void Test_BFu0c_BFu16s_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu16s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu8ll, BFu0c_BFu16s_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu16s_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu8s");
    static STRUCT_IF_C BFu0c_BFu16s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "BFu0c_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu16s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu8s, BFu0c_BFu16s_BFu8s)
//============================================================================



static void Test_BFu0c_BFu16s_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu9i");
    static STRUCT_IF_C BFu0c_BFu16s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "BFu0c_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu16s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu9i, BFu0c_BFu16s_BFu9i)
//============================================================================



static void Test_BFu0c_BFu16s_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu16s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "BFu0c_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu16s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu9ll, BFu0c_BFu16s_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu16s_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu16s_BFu9s");
    static STRUCT_IF_C BFu0c_BFu16s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "BFu0c_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu16s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_BFu9s, BFu0c_BFu16s_BFu9s)
//============================================================================



static void Test_BFu0c_BFu16s_C()
{
  {
    init_simple_test("BFu0c_BFu16s_C");
    static STRUCT_IF_C BFu0c_BFu16s_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_C)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_C");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_C");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_C, BFu0c_BFu16s_C)
//============================================================================



static void Test_BFu0c_BFu16s_D()
{
  {
    init_simple_test("BFu0c_BFu16s_D");
    static STRUCT_IF_C BFu0c_BFu16s_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu16s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_D)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_D");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_D");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_D, BFu0c_BFu16s_D)
//============================================================================



static void Test_BFu0c_BFu16s_F()
{
  {
    init_simple_test("BFu0c_BFu16s_F");
    static STRUCT_IF_C BFu0c_BFu16s_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_F)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_F");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_F");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_F, BFu0c_BFu16s_F)
//============================================================================



static void Test_BFu0c_BFu16s_I()
{
  {
    init_simple_test("BFu0c_BFu16s_I");
    static STRUCT_IF_C BFu0c_BFu16s_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_I)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_I");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_I");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_I, BFu0c_BFu16s_I)
//============================================================================



static void Test_BFu0c_BFu16s_Ip()
{
  {
    init_simple_test("BFu0c_BFu16s_Ip");
    static STRUCT_IF_C BFu0c_BFu16s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu16s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_Ip");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_Ip, BFu0c_BFu16s_Ip)
//============================================================================



static void Test_BFu0c_BFu16s_L()
{
  {
    init_simple_test("BFu0c_BFu16s_L");
    static STRUCT_IF_C BFu0c_BFu16s_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu16s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_L)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_L");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_L");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_L, BFu0c_BFu16s_L)
//============================================================================



static void Test_BFu0c_BFu16s_S()
{
  {
    init_simple_test("BFu0c_BFu16s_S");
    static STRUCT_IF_C BFu0c_BFu16s_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_S)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_S");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_S");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_S, BFu0c_BFu16s_S)
//============================================================================



static void Test_BFu0c_BFu16s_Uc()
{
  {
    init_simple_test("BFu0c_BFu16s_Uc");
    static STRUCT_IF_C BFu0c_BFu16s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu16s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_Uc");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_Uc, BFu0c_BFu16s_Uc)
//============================================================================



static void Test_BFu0c_BFu16s_Ui()
{
  {
    init_simple_test("BFu0c_BFu16s_Ui");
    static STRUCT_IF_C BFu0c_BFu16s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu16s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_Ui");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_Ui, BFu0c_BFu16s_Ui)
//============================================================================



static void Test_BFu0c_BFu16s_Ul()
{
  {
    init_simple_test("BFu0c_BFu16s_Ul");
    static STRUCT_IF_C BFu0c_BFu16s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu0c_BFu16s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_Ul");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_Ul, BFu0c_BFu16s_Ul)
//============================================================================



static void Test_BFu0c_BFu16s_Us()
{
  {
    init_simple_test("BFu0c_BFu16s_Us");
    static STRUCT_IF_C BFu0c_BFu16s_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu16s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_Us");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_Us");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_Us, BFu0c_BFu16s_Us)
//============================================================================



static void Test_BFu0c_BFu16s_Vp()
{
  {
    init_simple_test("BFu0c_BFu16s_Vp");
    static STRUCT_IF_C BFu0c_BFu16s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu0c_BFu16s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu16s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "BFu0c_BFu16s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu16s_Vp");
    check_field_offset(lv, v2, 2, "BFu0c_BFu16s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu16s_Vp, BFu0c_BFu16s_Vp)
//============================================================================



static void Test_BFu0c_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu17i");
    static STRUCT_IF_C BFu0c_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i, BFu0c_BFu17i)
//============================================================================



static void Test_BFu0c_BFu17i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu17i_BFu0c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu0c, BFu0c_BFu17i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu17i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu17i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu17i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu17i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu0i, BFu0c_BFu17i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu17i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu17i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu17i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu17i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu0ll, BFu0c_BFu17i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu17i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu17i_BFu0s lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu17i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu17i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu0s, BFu0c_BFu17i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu17i_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu15i");
    static STRUCT_IF_C BFu0c_BFu17i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "BFu0c_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu17i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu15i, BFu0c_BFu17i_BFu15i)
//============================================================================



static void Test_BFu0c_BFu17i_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu17i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "BFu0c_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu17i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu15ll, BFu0c_BFu17i_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu17i_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu15s");
    static STRUCT_IF_C BFu0c_BFu17i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "BFu0c_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu17i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu15s, BFu0c_BFu17i_BFu15s)
//============================================================================



static void Test_BFu0c_BFu17i_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu16i");
    static STRUCT_IF_C BFu0c_BFu17i_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "BFu0c_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu17i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu16i, BFu0c_BFu17i_BFu16i)
//============================================================================



static void Test_BFu0c_BFu17i_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu17i_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "BFu0c_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu17i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu16ll, BFu0c_BFu17i_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu17i_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu16s");
    static STRUCT_IF_C BFu0c_BFu17i_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "BFu0c_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu17i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu16s, BFu0c_BFu17i_BFu16s)
//============================================================================



static void Test_BFu0c_BFu17i_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu17i");
    static STRUCT_IF_C BFu0c_BFu17i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "BFu0c_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu17i, BFu0c_BFu17i_BFu17i)
//============================================================================



static void Test_BFu0c_BFu17i_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu17i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "BFu0c_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu17ll, BFu0c_BFu17i_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu17i_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu1c");
    static STRUCT_IF_C BFu0c_BFu17i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu1c");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "BFu0c_BFu17i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu1c, BFu0c_BFu17i_BFu1c)
//============================================================================



static void Test_BFu0c_BFu17i_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu1i");
    static STRUCT_IF_C BFu0c_BFu17i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu1i");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "BFu0c_BFu17i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu1i, BFu0c_BFu17i_BFu1i)
//============================================================================



static void Test_BFu0c_BFu17i_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu17i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu1ll");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "BFu0c_BFu17i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu1ll, BFu0c_BFu17i_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu17i_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu1s");
    static STRUCT_IF_C BFu0c_BFu17i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu1s");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "BFu0c_BFu17i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu1s, BFu0c_BFu17i_BFu1s)
//============================================================================



static void Test_BFu0c_BFu17i_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu31i");
    static STRUCT_IF_C BFu0c_BFu17i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu17i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "BFu0c_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu17i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu31i, BFu0c_BFu17i_BFu31i)
//============================================================================



static void Test_BFu0c_BFu17i_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu17i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu17i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "BFu0c_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu17i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu31ll, BFu0c_BFu17i_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu17i_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu32i");
    static STRUCT_IF_C BFu0c_BFu17i_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "BFu0c_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu17i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu32i, BFu0c_BFu17i_BFu32i)
//============================================================================



static void Test_BFu0c_BFu17i_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu17i_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "BFu0c_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu17i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu32ll, BFu0c_BFu17i_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu17i_BFu33()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu33");
    static STRUCT_IF_C BFu0c_BFu17i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, 1, "BFu0c_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, hide_ull(1LL<<32), "BFu0c_BFu17i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu33, BFu0c_BFu17i_BFu33)
//============================================================================



static void Test_BFu0c_BFu17i_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu7c");
    static STRUCT_IF_C BFu0c_BFu17i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "BFu0c_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu17i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu7c, BFu0c_BFu17i_BFu7c)
//============================================================================



static void Test_BFu0c_BFu17i_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu7i");
    static STRUCT_IF_C BFu0c_BFu17i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "BFu0c_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu17i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu7i, BFu0c_BFu17i_BFu7i)
//============================================================================



static void Test_BFu0c_BFu17i_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu17i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "BFu0c_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu17i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu7ll, BFu0c_BFu17i_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu17i_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu7s");
    static STRUCT_IF_C BFu0c_BFu17i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "BFu0c_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu17i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu7s, BFu0c_BFu17i_BFu7s)
//============================================================================



static void Test_BFu0c_BFu17i_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu8c");
    static STRUCT_IF_C BFu0c_BFu17i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "BFu0c_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu17i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu8c, BFu0c_BFu17i_BFu8c)
//============================================================================



static void Test_BFu0c_BFu17i_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu8i");
    static STRUCT_IF_C BFu0c_BFu17i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "BFu0c_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu17i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu8i, BFu0c_BFu17i_BFu8i)
//============================================================================



static void Test_BFu0c_BFu17i_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu17i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "BFu0c_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu17i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu8ll, BFu0c_BFu17i_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu17i_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu8s");
    static STRUCT_IF_C BFu0c_BFu17i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "BFu0c_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu17i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu8s, BFu0c_BFu17i_BFu8s)
//============================================================================



static void Test_BFu0c_BFu17i_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu9i");
    static STRUCT_IF_C BFu0c_BFu17i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "BFu0c_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu17i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu9i, BFu0c_BFu17i_BFu9i)
//============================================================================



static void Test_BFu0c_BFu17i_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu17i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "BFu0c_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu17i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu9ll, BFu0c_BFu17i_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu17i_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu17i_BFu9s");
    static STRUCT_IF_C BFu0c_BFu17i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "BFu0c_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu17i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_BFu9s, BFu0c_BFu17i_BFu9s)
//============================================================================



static void Test_BFu0c_BFu17i_C()
{
  {
    init_simple_test("BFu0c_BFu17i_C");
    static STRUCT_IF_C BFu0c_BFu17i_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_C)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_C");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_C");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_C, BFu0c_BFu17i_C)
//============================================================================



static void Test_BFu0c_BFu17i_D()
{
  {
    init_simple_test("BFu0c_BFu17i_D");
    static STRUCT_IF_C BFu0c_BFu17i_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu0c_BFu17i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_D)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_D");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_D");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_D, BFu0c_BFu17i_D)
//============================================================================



static void Test_BFu0c_BFu17i_F()
{
  {
    init_simple_test("BFu0c_BFu17i_F");
    static STRUCT_IF_C BFu0c_BFu17i_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_F)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_F");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_F");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_F, BFu0c_BFu17i_F)
//============================================================================



static void Test_BFu0c_BFu17i_I()
{
  {
    init_simple_test("BFu0c_BFu17i_I");
    static STRUCT_IF_C BFu0c_BFu17i_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_I)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_I");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_I");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_I, BFu0c_BFu17i_I)
//============================================================================



static void Test_BFu0c_BFu17i_Ip()
{
  {
    init_simple_test("BFu0c_BFu17i_Ip");
    static STRUCT_IF_C BFu0c_BFu17i_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu0c_BFu17i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_Ip");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_Ip, BFu0c_BFu17i_Ip)
//============================================================================



static void Test_BFu0c_BFu17i_L()
{
  {
    init_simple_test("BFu0c_BFu17i_L");
    static STRUCT_IF_C BFu0c_BFu17i_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu0c_BFu17i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_L)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_L");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_L");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_L, BFu0c_BFu17i_L)
//============================================================================



static void Test_BFu0c_BFu17i_S()
{
  {
    init_simple_test("BFu0c_BFu17i_S");
    static STRUCT_IF_C BFu0c_BFu17i_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_S)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_S");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_S");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_S, BFu0c_BFu17i_S)
//============================================================================



static void Test_BFu0c_BFu17i_Uc()
{
  {
    init_simple_test("BFu0c_BFu17i_Uc");
    static STRUCT_IF_C BFu0c_BFu17i_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_Uc");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_Uc, BFu0c_BFu17i_Uc)
//============================================================================



static void Test_BFu0c_BFu17i_Ui()
{
  {
    init_simple_test("BFu0c_BFu17i_Ui");
    static STRUCT_IF_C BFu0c_BFu17i_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_Ui");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_Ui, BFu0c_BFu17i_Ui)
//============================================================================



static void Test_BFu0c_BFu17i_Ul()
{
  {
    init_simple_test("BFu0c_BFu17i_Ul");
    static STRUCT_IF_C BFu0c_BFu17i_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu0c_BFu17i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_Ul");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_Ul, BFu0c_BFu17i_Ul)
//============================================================================



static void Test_BFu0c_BFu17i_Us()
{
  {
    init_simple_test("BFu0c_BFu17i_Us");
    static STRUCT_IF_C BFu0c_BFu17i_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_Us");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_Us");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_Us, BFu0c_BFu17i_Us)
//============================================================================



static void Test_BFu0c_BFu17i_Vp()
{
  {
    init_simple_test("BFu0c_BFu17i_Vp");
    static STRUCT_IF_C BFu0c_BFu17i_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu0c_BFu17i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17i_Vp");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17i_Vp, BFu0c_BFu17i_Vp)
//============================================================================



static void Test_BFu0c_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll, BFu0c_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu0c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu0c, BFu0c_BFu17ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu17ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu17ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu0i, BFu0c_BFu17ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu17ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu17ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu0ll, BFu0c_BFu17ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu0s lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu17ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu17ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu0s, BFu0c_BFu17ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu15i");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "BFu0c_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu17ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu15i, BFu0c_BFu17ll_BFu15i)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "BFu0c_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu17ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu15ll, BFu0c_BFu17ll_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu15s");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "BFu0c_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu17ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu15s, BFu0c_BFu17ll_BFu15s)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu16i");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "BFu0c_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu17ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu16i, BFu0c_BFu17ll_BFu16i)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "BFu0c_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu17ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu16ll, BFu0c_BFu17ll_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu16s");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "BFu0c_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu17ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu16s, BFu0c_BFu17ll_BFu16s)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu17i");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "BFu0c_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu17i, BFu0c_BFu17ll_BFu17i)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "BFu0c_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu17ll, BFu0c_BFu17ll_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu1c");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu1c");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "BFu0c_BFu17ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu1c, BFu0c_BFu17ll_BFu1c)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu1i");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu1i");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "BFu0c_BFu17ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu1i, BFu0c_BFu17ll_BFu1i)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "BFu0c_BFu17ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu1ll, BFu0c_BFu17ll_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu1s");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu1s");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "BFu0c_BFu17ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu1s, BFu0c_BFu17ll_BFu1s)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu31i");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu17ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "BFu0c_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu17ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu31i, BFu0c_BFu17ll_BFu31i)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu17ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "BFu0c_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu17ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu31ll, BFu0c_BFu17ll_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu32i");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "BFu0c_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu17ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu32i, BFu0c_BFu17ll_BFu32i)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "BFu0c_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu17ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu32ll, BFu0c_BFu17ll_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu33()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu33");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, 1, "BFu0c_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, hide_ull(1LL<<32), "BFu0c_BFu17ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu33, BFu0c_BFu17ll_BFu33)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu7c");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "BFu0c_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu17ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu7c, BFu0c_BFu17ll_BFu7c)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu7i");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "BFu0c_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu17ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu7i, BFu0c_BFu17ll_BFu7i)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "BFu0c_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu17ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu7ll, BFu0c_BFu17ll_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu7s");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu17ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "BFu0c_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu17ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu7s, BFu0c_BFu17ll_BFu7s)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu8c");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "BFu0c_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu17ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu8c, BFu0c_BFu17ll_BFu8c)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu8i");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "BFu0c_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu17ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu8i, BFu0c_BFu17ll_BFu8i)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "BFu0c_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu17ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu8ll, BFu0c_BFu17ll_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu8s");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "BFu0c_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu17ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu8s, BFu0c_BFu17ll_BFu8s)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu9i");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "BFu0c_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu17ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu9i, BFu0c_BFu17ll_BFu9i)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "BFu0c_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu17ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu9ll, BFu0c_BFu17ll_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu17ll_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu17ll_BFu9s");
    static STRUCT_IF_C BFu0c_BFu17ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "BFu0c_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu17ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_BFu9s, BFu0c_BFu17ll_BFu9s)
//============================================================================



static void Test_BFu0c_BFu17ll_C()
{
  {
    init_simple_test("BFu0c_BFu17ll_C");
    static STRUCT_IF_C BFu0c_BFu17ll_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_C");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_C");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_C, BFu0c_BFu17ll_C)
//============================================================================



static void Test_BFu0c_BFu17ll_D()
{
  {
    init_simple_test("BFu0c_BFu17ll_D");
    static STRUCT_IF_C BFu0c_BFu17ll_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu0c_BFu17ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_D");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_D");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_D, BFu0c_BFu17ll_D)
//============================================================================



static void Test_BFu0c_BFu17ll_F()
{
  {
    init_simple_test("BFu0c_BFu17ll_F");
    static STRUCT_IF_C BFu0c_BFu17ll_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_F");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_F");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_F, BFu0c_BFu17ll_F)
//============================================================================



static void Test_BFu0c_BFu17ll_I()
{
  {
    init_simple_test("BFu0c_BFu17ll_I");
    static STRUCT_IF_C BFu0c_BFu17ll_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_I");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_I");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_I, BFu0c_BFu17ll_I)
//============================================================================



static void Test_BFu0c_BFu17ll_Ip()
{
  {
    init_simple_test("BFu0c_BFu17ll_Ip");
    static STRUCT_IF_C BFu0c_BFu17ll_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu0c_BFu17ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_Ip");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_Ip, BFu0c_BFu17ll_Ip)
//============================================================================



static void Test_BFu0c_BFu17ll_L()
{
  {
    init_simple_test("BFu0c_BFu17ll_L");
    static STRUCT_IF_C BFu0c_BFu17ll_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu0c_BFu17ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_L");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_L");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_L, BFu0c_BFu17ll_L)
//============================================================================



static void Test_BFu0c_BFu17ll_S()
{
  {
    init_simple_test("BFu0c_BFu17ll_S");
    static STRUCT_IF_C BFu0c_BFu17ll_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_S");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_S");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_S, BFu0c_BFu17ll_S)
//============================================================================



static void Test_BFu0c_BFu17ll_Uc()
{
  {
    init_simple_test("BFu0c_BFu17ll_Uc");
    static STRUCT_IF_C BFu0c_BFu17ll_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu17ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_Uc");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_Uc, BFu0c_BFu17ll_Uc)
//============================================================================



static void Test_BFu0c_BFu17ll_Ui()
{
  {
    init_simple_test("BFu0c_BFu17ll_Ui");
    static STRUCT_IF_C BFu0c_BFu17ll_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu17ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_Ui");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_Ui, BFu0c_BFu17ll_Ui)
//============================================================================



static void Test_BFu0c_BFu17ll_Ul()
{
  {
    init_simple_test("BFu0c_BFu17ll_Ul");
    static STRUCT_IF_C BFu0c_BFu17ll_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu0c_BFu17ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_Ul");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_Ul, BFu0c_BFu17ll_Ul)
//============================================================================



static void Test_BFu0c_BFu17ll_Us()
{
  {
    init_simple_test("BFu0c_BFu17ll_Us");
    static STRUCT_IF_C BFu0c_BFu17ll_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu17ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_Us");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_Us, BFu0c_BFu17ll_Us)
//============================================================================



static void Test_BFu0c_BFu17ll_Vp()
{
  {
    init_simple_test("BFu0c_BFu17ll_Vp");
    static STRUCT_IF_C BFu0c_BFu17ll_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu0c_BFu17ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu17ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "BFu0c_BFu17ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu17ll_Vp");
    check_field_offset(lv, v2, 3, "BFu0c_BFu17ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu17ll_Vp, BFu0c_BFu17ll_Vp)
//============================================================================



static void Test_BFu0c_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu1c");
    static STRUCT_IF_C BFu0c_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c, BFu0c_BFu1c)
//============================================================================



static void Test_BFu0c_BFu1c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu1c_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu0c, BFu0c_BFu1c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu1c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu1c_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu1c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1c_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu0i, BFu0c_BFu1c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu1c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu1c_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu1c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1c_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu0ll, BFu0c_BFu1c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu1c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu1c_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu1c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1c_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu0s, BFu0c_BFu1c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu1c_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu15i");
    static STRUCT_IF_C BFu0c_BFu1c_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1c_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu15i, BFu0c_BFu1c_BFu15i)
//============================================================================



static void Test_BFu0c_BFu1c_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu1c_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1c_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu15ll, BFu0c_BFu1c_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu1c_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu15s");
    static STRUCT_IF_C BFu0c_BFu1c_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1c_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu15s, BFu0c_BFu1c_BFu15s)
//============================================================================



static void Test_BFu0c_BFu1c_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu16i");
    static STRUCT_IF_C BFu0c_BFu1c_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1c_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu16i, BFu0c_BFu1c_BFu16i)
//============================================================================



static void Test_BFu0c_BFu1c_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu1c_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu16ll, BFu0c_BFu1c_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu1c_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu16s");
    static STRUCT_IF_C BFu0c_BFu1c_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1c_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu16s, BFu0c_BFu1c_BFu16s)
//============================================================================



static void Test_BFu0c_BFu1c_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu17i");
    static STRUCT_IF_C BFu0c_BFu1c_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "BFu0c_BFu1c_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu1c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu17i, BFu0c_BFu1c_BFu17i)
//============================================================================



static void Test_BFu0c_BFu1c_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu1c_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "BFu0c_BFu1c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu1c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu17ll, BFu0c_BFu1c_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu1c_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu1c");
    static STRUCT_IF_C BFu0c_BFu1c_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu1c");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu1c, BFu0c_BFu1c_BFu1c)
//============================================================================



static void Test_BFu0c_BFu1c_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu1i");
    static STRUCT_IF_C BFu0c_BFu1c_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu1i");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu1i, BFu0c_BFu1c_BFu1i)
//============================================================================



static void Test_BFu0c_BFu1c_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu1c_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu1ll");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu1ll, BFu0c_BFu1c_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu1c_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu1s");
    static STRUCT_IF_C BFu0c_BFu1c_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu1s");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu1s, BFu0c_BFu1c_BFu1s)
//============================================================================



static void Test_BFu0c_BFu1c_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu31i");
    static STRUCT_IF_C BFu0c_BFu1c_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu1c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "BFu0c_BFu1c_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu1c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu31i, BFu0c_BFu1c_BFu31i)
//============================================================================



static void Test_BFu0c_BFu1c_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu1c_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu1c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "BFu0c_BFu1c_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu1c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu31ll, BFu0c_BFu1c_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu1c_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu32i");
    static STRUCT_IF_C BFu0c_BFu1c_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "BFu0c_BFu1c_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu1c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu32i, BFu0c_BFu1c_BFu32i)
//============================================================================



static void Test_BFu0c_BFu1c_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu1c_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "BFu0c_BFu1c_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu1c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu32ll, BFu0c_BFu1c_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu1c_BFu33()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu33");
    static STRUCT_IF_C BFu0c_BFu1c_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, 1, "BFu0c_BFu1c_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, hide_ull(1LL<<32), "BFu0c_BFu1c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu33, BFu0c_BFu1c_BFu33)
//============================================================================



static void Test_BFu0c_BFu1c_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu7c");
    static STRUCT_IF_C BFu0c_BFu1c_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1c_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu7c, BFu0c_BFu1c_BFu7c)
//============================================================================



static void Test_BFu0c_BFu1c_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu7i");
    static STRUCT_IF_C BFu0c_BFu1c_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1c_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu7i, BFu0c_BFu1c_BFu7i)
//============================================================================



static void Test_BFu0c_BFu1c_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu1c_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu7ll, BFu0c_BFu1c_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu1c_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu7s");
    static STRUCT_IF_C BFu0c_BFu1c_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1c_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu7s, BFu0c_BFu1c_BFu7s)
//============================================================================



static void Test_BFu0c_BFu1c_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu8c");
    static STRUCT_IF_C BFu0c_BFu1c_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1c_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu8c, BFu0c_BFu1c_BFu8c)
//============================================================================



static void Test_BFu0c_BFu1c_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu8i");
    static STRUCT_IF_C BFu0c_BFu1c_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1c_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu8i, BFu0c_BFu1c_BFu8i)
//============================================================================



static void Test_BFu0c_BFu1c_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu1c_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1c_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu8ll, BFu0c_BFu1c_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu1c_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu8s");
    static STRUCT_IF_C BFu0c_BFu1c_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1c_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu8s, BFu0c_BFu1c_BFu8s)
//============================================================================



static void Test_BFu0c_BFu1c_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu9i");
    static STRUCT_IF_C BFu0c_BFu1c_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1c_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu9i, BFu0c_BFu1c_BFu9i)
//============================================================================



static void Test_BFu0c_BFu1c_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu1c_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu9ll, BFu0c_BFu1c_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu1c_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu1c_BFu9s");
    static STRUCT_IF_C BFu0c_BFu1c_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1c_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_BFu9s, BFu0c_BFu1c_BFu9s)
//============================================================================



static void Test_BFu0c_BFu1c_C()
{
  {
    init_simple_test("BFu0c_BFu1c_C");
    static STRUCT_IF_C BFu0c_BFu1c_C lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_C)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_C");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_C, BFu0c_BFu1c_C)
//============================================================================



static void Test_BFu0c_BFu1c_D()
{
  {
    init_simple_test("BFu0c_BFu1c_D");
    static STRUCT_IF_C BFu0c_BFu1c_D lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1c_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_D)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_D");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_D, BFu0c_BFu1c_D)
//============================================================================



static void Test_BFu0c_BFu1c_F()
{
  {
    init_simple_test("BFu0c_BFu1c_F");
    static STRUCT_IF_C BFu0c_BFu1c_F lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1c_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_F)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_F");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_F, BFu0c_BFu1c_F)
//============================================================================



static void Test_BFu0c_BFu1c_I()
{
  {
    init_simple_test("BFu0c_BFu1c_I");
    static STRUCT_IF_C BFu0c_BFu1c_I lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1c_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_I)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_I");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_I, BFu0c_BFu1c_I)
//============================================================================



static void Test_BFu0c_BFu1c_Ip()
{
  {
    init_simple_test("BFu0c_BFu1c_Ip");
    static STRUCT_IF_C BFu0c_BFu1c_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(BFu0c_BFu1c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_Ip");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_Ip, BFu0c_BFu1c_Ip)
//============================================================================



static void Test_BFu0c_BFu1c_L()
{
  {
    init_simple_test("BFu0c_BFu1c_L");
    static STRUCT_IF_C BFu0c_BFu1c_L lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1c_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_L)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_L");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_L, BFu0c_BFu1c_L)
//============================================================================



static void Test_BFu0c_BFu1c_S()
{
  {
    init_simple_test("BFu0c_BFu1c_S");
    static STRUCT_IF_C BFu0c_BFu1c_S lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1c_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_S)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_S");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_S, BFu0c_BFu1c_S)
//============================================================================



static void Test_BFu0c_BFu1c_Uc()
{
  {
    init_simple_test("BFu0c_BFu1c_Uc");
    static STRUCT_IF_C BFu0c_BFu1c_Uc lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_Uc");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_Uc, BFu0c_BFu1c_Uc)
//============================================================================



static void Test_BFu0c_BFu1c_Ui()
{
  {
    init_simple_test("BFu0c_BFu1c_Ui");
    static STRUCT_IF_C BFu0c_BFu1c_Ui lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_Ui");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_Ui, BFu0c_BFu1c_Ui)
//============================================================================



static void Test_BFu0c_BFu1c_Ul()
{
  {
    init_simple_test("BFu0c_BFu1c_Ul");
    static STRUCT_IF_C BFu0c_BFu1c_Ul lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_Ul");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_Ul, BFu0c_BFu1c_Ul)
//============================================================================



static void Test_BFu0c_BFu1c_Us()
{
  {
    init_simple_test("BFu0c_BFu1c_Us");
    static STRUCT_IF_C BFu0c_BFu1c_Us lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_Us");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_Us, BFu0c_BFu1c_Us)
//============================================================================



static void Test_BFu0c_BFu1c_Vp()
{
  {
    init_simple_test("BFu0c_BFu1c_Vp");
    static STRUCT_IF_C BFu0c_BFu1c_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(BFu0c_BFu1c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1c_Vp");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1c_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1c_Vp, BFu0c_BFu1c_Vp)
//============================================================================



static void Test_BFu0c_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu1i");
    static STRUCT_IF_C BFu0c_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i, BFu0c_BFu1i)
//============================================================================



static void Test_BFu0c_BFu1i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu1i_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu0c, BFu0c_BFu1i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu1i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu1i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu1i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu0i, BFu0c_BFu1i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu1i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu1i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu1i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu0ll, BFu0c_BFu1i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu1i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu1i_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu1i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu0s, BFu0c_BFu1i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu1i_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu15i");
    static STRUCT_IF_C BFu0c_BFu1i_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1i_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu15i, BFu0c_BFu1i_BFu15i)
//============================================================================



static void Test_BFu0c_BFu1i_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu1i_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu15ll, BFu0c_BFu1i_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu1i_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu15s");
    static STRUCT_IF_C BFu0c_BFu1i_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1i_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu15s, BFu0c_BFu1i_BFu15s)
//============================================================================



static void Test_BFu0c_BFu1i_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu16i");
    static STRUCT_IF_C BFu0c_BFu1i_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1i_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu16i, BFu0c_BFu1i_BFu16i)
//============================================================================



static void Test_BFu0c_BFu1i_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu1i_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu16ll, BFu0c_BFu1i_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu1i_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu16s");
    static STRUCT_IF_C BFu0c_BFu1i_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1i_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu16s, BFu0c_BFu1i_BFu16s)
//============================================================================



static void Test_BFu0c_BFu1i_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu17i");
    static STRUCT_IF_C BFu0c_BFu1i_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "BFu0c_BFu1i_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu1i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu17i, BFu0c_BFu1i_BFu17i)
//============================================================================



static void Test_BFu0c_BFu1i_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu1i_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "BFu0c_BFu1i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu1i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu17ll, BFu0c_BFu1i_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu1i_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu1c");
    static STRUCT_IF_C BFu0c_BFu1i_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu1c");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu1c, BFu0c_BFu1i_BFu1c)
//============================================================================



static void Test_BFu0c_BFu1i_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu1i");
    static STRUCT_IF_C BFu0c_BFu1i_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu1i");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu1i, BFu0c_BFu1i_BFu1i)
//============================================================================



static void Test_BFu0c_BFu1i_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu1i_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu1ll");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu1ll, BFu0c_BFu1i_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu1i_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu1s");
    static STRUCT_IF_C BFu0c_BFu1i_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu1s");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu1s, BFu0c_BFu1i_BFu1s)
//============================================================================



static void Test_BFu0c_BFu1i_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu31i");
    static STRUCT_IF_C BFu0c_BFu1i_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu1i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "BFu0c_BFu1i_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu1i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu31i, BFu0c_BFu1i_BFu31i)
//============================================================================



static void Test_BFu0c_BFu1i_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu1i_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu1i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "BFu0c_BFu1i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu1i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu31ll, BFu0c_BFu1i_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu1i_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu32i");
    static STRUCT_IF_C BFu0c_BFu1i_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "BFu0c_BFu1i_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu1i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu32i, BFu0c_BFu1i_BFu32i)
//============================================================================



static void Test_BFu0c_BFu1i_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu1i_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "BFu0c_BFu1i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu1i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu32ll, BFu0c_BFu1i_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu1i_BFu33()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu33");
    static STRUCT_IF_C BFu0c_BFu1i_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, 1, "BFu0c_BFu1i_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, hide_ull(1LL<<32), "BFu0c_BFu1i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu33, BFu0c_BFu1i_BFu33)
//============================================================================



static void Test_BFu0c_BFu1i_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu7c");
    static STRUCT_IF_C BFu0c_BFu1i_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1i_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu7c, BFu0c_BFu1i_BFu7c)
//============================================================================



static void Test_BFu0c_BFu1i_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu7i");
    static STRUCT_IF_C BFu0c_BFu1i_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1i_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu7i, BFu0c_BFu1i_BFu7i)
//============================================================================



static void Test_BFu0c_BFu1i_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu1i_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu7ll, BFu0c_BFu1i_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu1i_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu7s");
    static STRUCT_IF_C BFu0c_BFu1i_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1i_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu7s, BFu0c_BFu1i_BFu7s)
//============================================================================



static void Test_BFu0c_BFu1i_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu8c");
    static STRUCT_IF_C BFu0c_BFu1i_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1i_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu8c, BFu0c_BFu1i_BFu8c)
//============================================================================



static void Test_BFu0c_BFu1i_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu8i");
    static STRUCT_IF_C BFu0c_BFu1i_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1i_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu8i, BFu0c_BFu1i_BFu8i)
//============================================================================



static void Test_BFu0c_BFu1i_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu1i_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu8ll, BFu0c_BFu1i_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu1i_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu8s");
    static STRUCT_IF_C BFu0c_BFu1i_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1i_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu8s, BFu0c_BFu1i_BFu8s)
//============================================================================



static void Test_BFu0c_BFu1i_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu9i");
    static STRUCT_IF_C BFu0c_BFu1i_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1i_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu9i, BFu0c_BFu1i_BFu9i)
//============================================================================



static void Test_BFu0c_BFu1i_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu1i_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu9ll, BFu0c_BFu1i_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu1i_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu1i_BFu9s");
    static STRUCT_IF_C BFu0c_BFu1i_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1i_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_BFu9s, BFu0c_BFu1i_BFu9s)
//============================================================================



static void Test_BFu0c_BFu1i_C()
{
  {
    init_simple_test("BFu0c_BFu1i_C");
    static STRUCT_IF_C BFu0c_BFu1i_C lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_C)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_C");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_C, BFu0c_BFu1i_C)
//============================================================================



static void Test_BFu0c_BFu1i_D()
{
  {
    init_simple_test("BFu0c_BFu1i_D");
    static STRUCT_IF_C BFu0c_BFu1i_D lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_D)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_D");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_D, BFu0c_BFu1i_D)
//============================================================================



static void Test_BFu0c_BFu1i_F()
{
  {
    init_simple_test("BFu0c_BFu1i_F");
    static STRUCT_IF_C BFu0c_BFu1i_F lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_F)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_F");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_F, BFu0c_BFu1i_F)
//============================================================================



static void Test_BFu0c_BFu1i_I()
{
  {
    init_simple_test("BFu0c_BFu1i_I");
    static STRUCT_IF_C BFu0c_BFu1i_I lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_I)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_I");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_I, BFu0c_BFu1i_I)
//============================================================================



static void Test_BFu0c_BFu1i_Ip()
{
  {
    init_simple_test("BFu0c_BFu1i_Ip");
    static STRUCT_IF_C BFu0c_BFu1i_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(BFu0c_BFu1i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_Ip");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_Ip, BFu0c_BFu1i_Ip)
//============================================================================



static void Test_BFu0c_BFu1i_L()
{
  {
    init_simple_test("BFu0c_BFu1i_L");
    static STRUCT_IF_C BFu0c_BFu1i_L lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_L)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_L");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_L, BFu0c_BFu1i_L)
//============================================================================



static void Test_BFu0c_BFu1i_S()
{
  {
    init_simple_test("BFu0c_BFu1i_S");
    static STRUCT_IF_C BFu0c_BFu1i_S lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_S)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_S");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_S, BFu0c_BFu1i_S)
//============================================================================



static void Test_BFu0c_BFu1i_Uc()
{
  {
    init_simple_test("BFu0c_BFu1i_Uc");
    static STRUCT_IF_C BFu0c_BFu1i_Uc lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_Uc");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_Uc, BFu0c_BFu1i_Uc)
//============================================================================



static void Test_BFu0c_BFu1i_Ui()
{
  {
    init_simple_test("BFu0c_BFu1i_Ui");
    static STRUCT_IF_C BFu0c_BFu1i_Ui lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_Ui");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_Ui, BFu0c_BFu1i_Ui)
//============================================================================



static void Test_BFu0c_BFu1i_Ul()
{
  {
    init_simple_test("BFu0c_BFu1i_Ul");
    static STRUCT_IF_C BFu0c_BFu1i_Ul lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_Ul");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_Ul, BFu0c_BFu1i_Ul)
//============================================================================



static void Test_BFu0c_BFu1i_Us()
{
  {
    init_simple_test("BFu0c_BFu1i_Us");
    static STRUCT_IF_C BFu0c_BFu1i_Us lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_Us");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_Us, BFu0c_BFu1i_Us)
//============================================================================



static void Test_BFu0c_BFu1i_Vp()
{
  {
    init_simple_test("BFu0c_BFu1i_Vp");
    static STRUCT_IF_C BFu0c_BFu1i_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(BFu0c_BFu1i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1i_Vp");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1i_Vp, BFu0c_BFu1i_Vp)
//============================================================================



static void Test_BFu0c_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll, BFu0c_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu0c, BFu0c_BFu1ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu1ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu0i, BFu0c_BFu1ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu1ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu0ll, BFu0c_BFu1ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu1ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu0s, BFu0c_BFu1ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu15i");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu15i, BFu0c_BFu1ll_BFu15i)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu15ll, BFu0c_BFu1ll_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu15s");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu15s, BFu0c_BFu1ll_BFu15s)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu16i");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu16i, BFu0c_BFu1ll_BFu16i)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu16ll, BFu0c_BFu1ll_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu16s");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu16s, BFu0c_BFu1ll_BFu16s)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu17i");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "BFu0c_BFu1ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu1ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu17i, BFu0c_BFu1ll_BFu17i)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "BFu0c_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu1ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu17ll, BFu0c_BFu1ll_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu1c");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu1c");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu1c, BFu0c_BFu1ll_BFu1c)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu1i");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu1i");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu1i, BFu0c_BFu1ll_BFu1i)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu1ll");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu1ll, BFu0c_BFu1ll_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu1s");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu1s");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu1s, BFu0c_BFu1ll_BFu1s)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu31i");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu1ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "BFu0c_BFu1ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu1ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu31i, BFu0c_BFu1ll_BFu31i)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu1ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "BFu0c_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu1ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu31ll, BFu0c_BFu1ll_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu32i");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "BFu0c_BFu1ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu1ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu32i, BFu0c_BFu1ll_BFu32i)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "BFu0c_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu1ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu32ll, BFu0c_BFu1ll_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu33()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu33");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, 1, "BFu0c_BFu1ll_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, hide_ull(1LL<<32), "BFu0c_BFu1ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu33, BFu0c_BFu1ll_BFu33)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu7c");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu7c, BFu0c_BFu1ll_BFu7c)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu7i");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu7i, BFu0c_BFu1ll_BFu7i)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu7ll, BFu0c_BFu1ll_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu7s");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu7s, BFu0c_BFu1ll_BFu7s)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu8c");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu8c, BFu0c_BFu1ll_BFu8c)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu8i");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu8i, BFu0c_BFu1ll_BFu8i)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu8ll, BFu0c_BFu1ll_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu8s");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu8s, BFu0c_BFu1ll_BFu8s)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu9i");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu9i, BFu0c_BFu1ll_BFu9i)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu9ll, BFu0c_BFu1ll_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu1ll_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu1ll_BFu9s");
    static STRUCT_IF_C BFu0c_BFu1ll_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_BFu9s, BFu0c_BFu1ll_BFu9s)
//============================================================================



static void Test_BFu0c_BFu1ll_C()
{
  {
    init_simple_test("BFu0c_BFu1ll_C");
    static STRUCT_IF_C BFu0c_BFu1ll_C lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_C");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_C, BFu0c_BFu1ll_C)
//============================================================================



static void Test_BFu0c_BFu1ll_D()
{
  {
    init_simple_test("BFu0c_BFu1ll_D");
    static STRUCT_IF_C BFu0c_BFu1ll_D lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_D");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_D, BFu0c_BFu1ll_D)
//============================================================================



static void Test_BFu0c_BFu1ll_F()
{
  {
    init_simple_test("BFu0c_BFu1ll_F");
    static STRUCT_IF_C BFu0c_BFu1ll_F lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_F");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_F, BFu0c_BFu1ll_F)
//============================================================================



static void Test_BFu0c_BFu1ll_I()
{
  {
    init_simple_test("BFu0c_BFu1ll_I");
    static STRUCT_IF_C BFu0c_BFu1ll_I lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_I");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_I, BFu0c_BFu1ll_I)
//============================================================================



static void Test_BFu0c_BFu1ll_Ip()
{
  {
    init_simple_test("BFu0c_BFu1ll_Ip");
    static STRUCT_IF_C BFu0c_BFu1ll_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(BFu0c_BFu1ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_Ip");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_Ip, BFu0c_BFu1ll_Ip)
//============================================================================



static void Test_BFu0c_BFu1ll_L()
{
  {
    init_simple_test("BFu0c_BFu1ll_L");
    static STRUCT_IF_C BFu0c_BFu1ll_L lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_L");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_L, BFu0c_BFu1ll_L)
//============================================================================



static void Test_BFu0c_BFu1ll_S()
{
  {
    init_simple_test("BFu0c_BFu1ll_S");
    static STRUCT_IF_C BFu0c_BFu1ll_S lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_S");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_S, BFu0c_BFu1ll_S)
//============================================================================



static void Test_BFu0c_BFu1ll_Uc()
{
  {
    init_simple_test("BFu0c_BFu1ll_Uc");
    static STRUCT_IF_C BFu0c_BFu1ll_Uc lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_Uc");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_Uc, BFu0c_BFu1ll_Uc)
//============================================================================



static void Test_BFu0c_BFu1ll_Ui()
{
  {
    init_simple_test("BFu0c_BFu1ll_Ui");
    static STRUCT_IF_C BFu0c_BFu1ll_Ui lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_Ui");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_Ui, BFu0c_BFu1ll_Ui)
//============================================================================



static void Test_BFu0c_BFu1ll_Ul()
{
  {
    init_simple_test("BFu0c_BFu1ll_Ul");
    static STRUCT_IF_C BFu0c_BFu1ll_Ul lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_Ul");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_Ul, BFu0c_BFu1ll_Ul)
//============================================================================



static void Test_BFu0c_BFu1ll_Us()
{
  {
    init_simple_test("BFu0c_BFu1ll_Us");
    static STRUCT_IF_C BFu0c_BFu1ll_Us lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_Us");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_Us, BFu0c_BFu1ll_Us)
//============================================================================



static void Test_BFu0c_BFu1ll_Vp()
{
  {
    init_simple_test("BFu0c_BFu1ll_Vp");
    static STRUCT_IF_C BFu0c_BFu1ll_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(BFu0c_BFu1ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1ll_Vp");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1ll_Vp, BFu0c_BFu1ll_Vp)
//============================================================================



static void Test_BFu0c_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu1s");
    static STRUCT_IF_C BFu0c_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s, BFu0c_BFu1s)
//============================================================================



static void Test_BFu0c_BFu1s_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu0c");
    static STRUCT_IF_C BFu0c_BFu1s_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu0c, BFu0c_BFu1s_BFu0c)
//============================================================================



static void Test_BFu0c_BFu1s_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu0i");
    static STRUCT_IF_C BFu0c_BFu1s_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu1s_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1s_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu0i, BFu0c_BFu1s_BFu0i)
//============================================================================



static void Test_BFu0c_BFu1s_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu1s_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu1s_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1s_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu0ll, BFu0c_BFu1s_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu1s_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu0s");
    static STRUCT_IF_C BFu0c_BFu1s_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu1s_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu1s_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu0s, BFu0c_BFu1s_BFu0s)
//============================================================================



static void Test_BFu0c_BFu1s_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu15i");
    static STRUCT_IF_C BFu0c_BFu1s_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1s_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu15i, BFu0c_BFu1s_BFu15i)
//============================================================================



static void Test_BFu0c_BFu1s_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu1s_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu15ll, BFu0c_BFu1s_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu1s_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu15s");
    static STRUCT_IF_C BFu0c_BFu1s_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "BFu0c_BFu1s_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu1s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu15s, BFu0c_BFu1s_BFu15s)
//============================================================================



static void Test_BFu0c_BFu1s_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu16i");
    static STRUCT_IF_C BFu0c_BFu1s_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1s_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu16i, BFu0c_BFu1s_BFu16i)
//============================================================================



static void Test_BFu0c_BFu1s_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu1s_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1s_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu16ll, BFu0c_BFu1s_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu1s_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu16s");
    static STRUCT_IF_C BFu0c_BFu1s_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "BFu0c_BFu1s_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu1s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu16s, BFu0c_BFu1s_BFu16s)
//============================================================================



static void Test_BFu0c_BFu1s_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu17i");
    static STRUCT_IF_C BFu0c_BFu1s_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "BFu0c_BFu1s_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu1s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu17i, BFu0c_BFu1s_BFu17i)
//============================================================================



static void Test_BFu0c_BFu1s_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu1s_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "BFu0c_BFu1s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu1s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu17ll, BFu0c_BFu1s_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu1s_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu1c");
    static STRUCT_IF_C BFu0c_BFu1s_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu1c");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu1c, BFu0c_BFu1s_BFu1c)
//============================================================================



static void Test_BFu0c_BFu1s_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu1i");
    static STRUCT_IF_C BFu0c_BFu1s_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu1i");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu1i, BFu0c_BFu1s_BFu1i)
//============================================================================



static void Test_BFu0c_BFu1s_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu1s_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu1ll");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu1ll, BFu0c_BFu1s_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu1s_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu1s");
    static STRUCT_IF_C BFu0c_BFu1s_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu1s");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "BFu0c_BFu1s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu1s, BFu0c_BFu1s_BFu1s)
//============================================================================



static void Test_BFu0c_BFu1s_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu31i");
    static STRUCT_IF_C BFu0c_BFu1s_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu1s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "BFu0c_BFu1s_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu1s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu31i, BFu0c_BFu1s_BFu31i)
//============================================================================



static void Test_BFu0c_BFu1s_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu1s_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu1s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "BFu0c_BFu1s_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu1s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu31ll, BFu0c_BFu1s_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu1s_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu32i");
    static STRUCT_IF_C BFu0c_BFu1s_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "BFu0c_BFu1s_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu1s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu32i, BFu0c_BFu1s_BFu32i)
//============================================================================



static void Test_BFu0c_BFu1s_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu1s_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "BFu0c_BFu1s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu1s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu32ll, BFu0c_BFu1s_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu1s_BFu33()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu33");
    static STRUCT_IF_C BFu0c_BFu1s_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, 1, "BFu0c_BFu1s_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, hide_ull(1LL<<32), "BFu0c_BFu1s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu33, BFu0c_BFu1s_BFu33)
//============================================================================



static void Test_BFu0c_BFu1s_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu7c");
    static STRUCT_IF_C BFu0c_BFu1s_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1s_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu7c, BFu0c_BFu1s_BFu7c)
//============================================================================



static void Test_BFu0c_BFu1s_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu7i");
    static STRUCT_IF_C BFu0c_BFu1s_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1s_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu7i, BFu0c_BFu1s_BFu7i)
//============================================================================



static void Test_BFu0c_BFu1s_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu1s_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu7ll, BFu0c_BFu1s_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu1s_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu7s");
    static STRUCT_IF_C BFu0c_BFu1s_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu1s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "BFu0c_BFu1s_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu1s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu7s, BFu0c_BFu1s_BFu7s)
//============================================================================



static void Test_BFu0c_BFu1s_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu8c");
    static STRUCT_IF_C BFu0c_BFu1s_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1s_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu8c, BFu0c_BFu1s_BFu8c)
//============================================================================



static void Test_BFu0c_BFu1s_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu8i");
    static STRUCT_IF_C BFu0c_BFu1s_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1s_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu8i, BFu0c_BFu1s_BFu8i)
//============================================================================



static void Test_BFu0c_BFu1s_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu1s_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu8ll, BFu0c_BFu1s_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu1s_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu8s");
    static STRUCT_IF_C BFu0c_BFu1s_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "BFu0c_BFu1s_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu1s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu8s, BFu0c_BFu1s_BFu8s)
//============================================================================



static void Test_BFu0c_BFu1s_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu9i");
    static STRUCT_IF_C BFu0c_BFu1s_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1s_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu9i, BFu0c_BFu1s_BFu9i)
//============================================================================



static void Test_BFu0c_BFu1s_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu1s_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu9ll, BFu0c_BFu1s_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu1s_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu1s_BFu9s");
    static STRUCT_IF_C BFu0c_BFu1s_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "BFu0c_BFu1s_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu1s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_BFu9s, BFu0c_BFu1s_BFu9s)
//============================================================================



static void Test_BFu0c_BFu1s_C()
{
  {
    init_simple_test("BFu0c_BFu1s_C");
    static STRUCT_IF_C BFu0c_BFu1s_C lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_C)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_C");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_C, BFu0c_BFu1s_C)
//============================================================================



static void Test_BFu0c_BFu1s_D()
{
  {
    init_simple_test("BFu0c_BFu1s_D");
    static STRUCT_IF_C BFu0c_BFu1s_D lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_D)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_D");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_D, BFu0c_BFu1s_D)
//============================================================================



static void Test_BFu0c_BFu1s_F()
{
  {
    init_simple_test("BFu0c_BFu1s_F");
    static STRUCT_IF_C BFu0c_BFu1s_F lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_F)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_F");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_F, BFu0c_BFu1s_F)
//============================================================================



static void Test_BFu0c_BFu1s_I()
{
  {
    init_simple_test("BFu0c_BFu1s_I");
    static STRUCT_IF_C BFu0c_BFu1s_I lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_I)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_I");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_I, BFu0c_BFu1s_I)
//============================================================================



static void Test_BFu0c_BFu1s_Ip()
{
  {
    init_simple_test("BFu0c_BFu1s_Ip");
    static STRUCT_IF_C BFu0c_BFu1s_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(BFu0c_BFu1s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_Ip");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_Ip, BFu0c_BFu1s_Ip)
//============================================================================



static void Test_BFu0c_BFu1s_L()
{
  {
    init_simple_test("BFu0c_BFu1s_L");
    static STRUCT_IF_C BFu0c_BFu1s_L lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_L)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_L");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_L, BFu0c_BFu1s_L)
//============================================================================



static void Test_BFu0c_BFu1s_S()
{
  {
    init_simple_test("BFu0c_BFu1s_S");
    static STRUCT_IF_C BFu0c_BFu1s_S lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_S)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_S");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_S, BFu0c_BFu1s_S)
//============================================================================



static void Test_BFu0c_BFu1s_Uc()
{
  {
    init_simple_test("BFu0c_BFu1s_Uc");
    static STRUCT_IF_C BFu0c_BFu1s_Uc lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu1s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_Uc");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_Uc, BFu0c_BFu1s_Uc)
//============================================================================



static void Test_BFu0c_BFu1s_Ui()
{
  {
    init_simple_test("BFu0c_BFu1s_Ui");
    static STRUCT_IF_C BFu0c_BFu1s_Ui lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu1s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_Ui");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_Ui, BFu0c_BFu1s_Ui)
//============================================================================



static void Test_BFu0c_BFu1s_Ul()
{
  {
    init_simple_test("BFu0c_BFu1s_Ul");
    static STRUCT_IF_C BFu0c_BFu1s_Ul lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu1s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_Ul");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_Ul, BFu0c_BFu1s_Ul)
//============================================================================



static void Test_BFu0c_BFu1s_Us()
{
  {
    init_simple_test("BFu0c_BFu1s_Us");
    static STRUCT_IF_C BFu0c_BFu1s_Us lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu1s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_Us");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_Us, BFu0c_BFu1s_Us)
//============================================================================



static void Test_BFu0c_BFu1s_Vp()
{
  {
    init_simple_test("BFu0c_BFu1s_Vp");
    static STRUCT_IF_C BFu0c_BFu1s_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(BFu0c_BFu1s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu1s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "BFu0c_BFu1s_Vp");
    check_field_offset(lv, v2, 1, "BFu0c_BFu1s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu1s_Vp, BFu0c_BFu1s_Vp)
//============================================================================



static void Test_BFu0c_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu31i");
    static STRUCT_IF_C BFu0c_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i, BFu0c_BFu31i)
//============================================================================



static void Test_BFu0c_BFu31i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu31i_BFu0c lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu0c, BFu0c_BFu31i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu31i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu31i_BFu0i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu31i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu0i, BFu0c_BFu31i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu31i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu31i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu31i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu31i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu0ll, BFu0c_BFu31i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu31i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu31i_BFu0s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu31i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu0s, BFu0c_BFu31i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu31i_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu15i");
    static STRUCT_IF_C BFu0c_BFu31i_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu15i");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "BFu0c_BFu31i_BFu15i");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu31i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu15i, BFu0c_BFu31i_BFu15i)
//============================================================================



static void Test_BFu0c_BFu31i_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu31i_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu15ll");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "BFu0c_BFu31i_BFu15ll");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu31i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu15ll, BFu0c_BFu31i_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu31i_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu15s");
    static STRUCT_IF_C BFu0c_BFu31i_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu15s");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "BFu0c_BFu31i_BFu15s");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu31i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu15s, BFu0c_BFu31i_BFu15s)
//============================================================================



static void Test_BFu0c_BFu31i_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu16i");
    static STRUCT_IF_C BFu0c_BFu31i_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu16i");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "BFu0c_BFu31i_BFu16i");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu31i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu16i, BFu0c_BFu31i_BFu16i)
//============================================================================



static void Test_BFu0c_BFu31i_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu31i_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu16ll");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "BFu0c_BFu31i_BFu16ll");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu31i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu16ll, BFu0c_BFu31i_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu31i_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu16s");
    static STRUCT_IF_C BFu0c_BFu31i_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu16s");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "BFu0c_BFu31i_BFu16s");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu31i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu16s, BFu0c_BFu31i_BFu16s)
//============================================================================



static void Test_BFu0c_BFu31i_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu17i");
    static STRUCT_IF_C BFu0c_BFu31i_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu17i");
    set_bf_and_test(lv, v2, 3, 7, 17, 1, "BFu0c_BFu31i_BFu17i");
    set_bf_and_test(lv, v2, 3, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu31i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu17i, BFu0c_BFu31i_BFu17i)
//============================================================================



static void Test_BFu0c_BFu31i_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu31i_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu17ll");
    set_bf_and_test(lv, v2, 3, 7, 17, 1, "BFu0c_BFu31i_BFu17ll");
    set_bf_and_test(lv, v2, 3, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu31i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu17ll, BFu0c_BFu31i_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu31i_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu1c");
    static STRUCT_IF_C BFu0c_BFu31i_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu1c");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "BFu0c_BFu31i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu1c, BFu0c_BFu31i_BFu1c)
//============================================================================



static void Test_BFu0c_BFu31i_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu1i");
    static STRUCT_IF_C BFu0c_BFu31i_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu1i");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "BFu0c_BFu31i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu1i, BFu0c_BFu31i_BFu1i)
//============================================================================



static void Test_BFu0c_BFu31i_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu31i_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu1ll");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "BFu0c_BFu31i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu1ll, BFu0c_BFu31i_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu31i_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu1s");
    static STRUCT_IF_C BFu0c_BFu31i_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu1s");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "BFu0c_BFu31i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu1s, BFu0c_BFu31i_BFu1s)
//============================================================================



static void Test_BFu0c_BFu31i_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu31i");
    static STRUCT_IF_C BFu0c_BFu31i_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 3, 7, 31, 1, "BFu0c_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 3, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu31i, BFu0c_BFu31i_BFu31i)
//============================================================================



static void Test_BFu0c_BFu31i_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu31i_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 3, 7, 31, 1, "BFu0c_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 3, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu31ll, BFu0c_BFu31i_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu31i_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu32i");
    static STRUCT_IF_C BFu0c_BFu31i_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 3, 7, 32, 1, "BFu0c_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 3, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu31i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu32i, BFu0c_BFu31i_BFu32i)
//============================================================================



static void Test_BFu0c_BFu31i_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu31i_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 3, 7, 32, 1, "BFu0c_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 3, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu31i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu32ll, BFu0c_BFu31i_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu31i_BFu33()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu33");
    static STRUCT_IF_C BFu0c_BFu31i_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 3, 7, 33, 1, "BFu0c_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 3, 7, 33, hide_ull(1LL<<32), "BFu0c_BFu31i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu33, BFu0c_BFu31i_BFu33)
//============================================================================



static void Test_BFu0c_BFu31i_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu7c");
    static STRUCT_IF_C BFu0c_BFu31i_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu7c");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "BFu0c_BFu31i_BFu7c");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu31i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu7c, BFu0c_BFu31i_BFu7c)
//============================================================================



static void Test_BFu0c_BFu31i_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu7i");
    static STRUCT_IF_C BFu0c_BFu31i_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu7i");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "BFu0c_BFu31i_BFu7i");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu31i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu7i, BFu0c_BFu31i_BFu7i)
//============================================================================



static void Test_BFu0c_BFu31i_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu31i_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu7ll");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "BFu0c_BFu31i_BFu7ll");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu31i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu7ll, BFu0c_BFu31i_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu31i_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu7s");
    static STRUCT_IF_C BFu0c_BFu31i_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu7s");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "BFu0c_BFu31i_BFu7s");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu31i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu7s, BFu0c_BFu31i_BFu7s)
//============================================================================



static void Test_BFu0c_BFu31i_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu8c");
    static STRUCT_IF_C BFu0c_BFu31i_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu8c");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "BFu0c_BFu31i_BFu8c");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu31i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu8c, BFu0c_BFu31i_BFu8c)
//============================================================================



static void Test_BFu0c_BFu31i_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu8i");
    static STRUCT_IF_C BFu0c_BFu31i_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu8i");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "BFu0c_BFu31i_BFu8i");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu31i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu8i, BFu0c_BFu31i_BFu8i)
//============================================================================



static void Test_BFu0c_BFu31i_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu31i_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu8ll");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "BFu0c_BFu31i_BFu8ll");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu31i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu8ll, BFu0c_BFu31i_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu31i_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu8s");
    static STRUCT_IF_C BFu0c_BFu31i_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu8s");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "BFu0c_BFu31i_BFu8s");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu31i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu8s, BFu0c_BFu31i_BFu8s)
//============================================================================



static void Test_BFu0c_BFu31i_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu9i");
    static STRUCT_IF_C BFu0c_BFu31i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu9i");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "BFu0c_BFu31i_BFu9i");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu31i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu9i, BFu0c_BFu31i_BFu9i)
//============================================================================



static void Test_BFu0c_BFu31i_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu31i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu9ll");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "BFu0c_BFu31i_BFu9ll");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu31i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu9ll, BFu0c_BFu31i_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu31i_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu31i_BFu9s");
    static STRUCT_IF_C BFu0c_BFu31i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_BFu9s");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "BFu0c_BFu31i_BFu9s");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu31i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_BFu9s, BFu0c_BFu31i_BFu9s)
//============================================================================



static void Test_BFu0c_BFu31i_C()
{
  {
    init_simple_test("BFu0c_BFu31i_C");
    static STRUCT_IF_C BFu0c_BFu31i_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_C)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_C");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_C");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_C, BFu0c_BFu31i_C)
//============================================================================



static void Test_BFu0c_BFu31i_D()
{
  {
    init_simple_test("BFu0c_BFu31i_D");
    static STRUCT_IF_C BFu0c_BFu31i_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu31i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_D)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_D");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_D");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_D, BFu0c_BFu31i_D)
//============================================================================



static void Test_BFu0c_BFu31i_F()
{
  {
    init_simple_test("BFu0c_BFu31i_F");
    static STRUCT_IF_C BFu0c_BFu31i_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_F)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_F");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_F");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_F, BFu0c_BFu31i_F)
//============================================================================



static void Test_BFu0c_BFu31i_I()
{
  {
    init_simple_test("BFu0c_BFu31i_I");
    static STRUCT_IF_C BFu0c_BFu31i_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_I)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_I");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_I");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_I, BFu0c_BFu31i_I)
//============================================================================



static void Test_BFu0c_BFu31i_Ip()
{
  {
    init_simple_test("BFu0c_BFu31i_Ip");
    static STRUCT_IF_C BFu0c_BFu31i_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu0c_BFu31i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_Ip");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_Ip, BFu0c_BFu31i_Ip)
//============================================================================



static void Test_BFu0c_BFu31i_L()
{
  {
    init_simple_test("BFu0c_BFu31i_L");
    static STRUCT_IF_C BFu0c_BFu31i_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu31i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_L)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_L");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_L");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_L, BFu0c_BFu31i_L)
//============================================================================



static void Test_BFu0c_BFu31i_S()
{
  {
    init_simple_test("BFu0c_BFu31i_S");
    static STRUCT_IF_C BFu0c_BFu31i_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_S)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_S");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_S");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_S, BFu0c_BFu31i_S)
//============================================================================



static void Test_BFu0c_BFu31i_Uc()
{
  {
    init_simple_test("BFu0c_BFu31i_Uc");
    static STRUCT_IF_C BFu0c_BFu31i_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_Uc");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_Uc, BFu0c_BFu31i_Uc)
//============================================================================



static void Test_BFu0c_BFu31i_Ui()
{
  {
    init_simple_test("BFu0c_BFu31i_Ui");
    static STRUCT_IF_C BFu0c_BFu31i_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_Ui");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_Ui, BFu0c_BFu31i_Ui)
//============================================================================



static void Test_BFu0c_BFu31i_Ul()
{
  {
    init_simple_test("BFu0c_BFu31i_Ul");
    static STRUCT_IF_C BFu0c_BFu31i_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu31i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_Ul");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_Ul, BFu0c_BFu31i_Ul)
//============================================================================



static void Test_BFu0c_BFu31i_Us()
{
  {
    init_simple_test("BFu0c_BFu31i_Us");
    static STRUCT_IF_C BFu0c_BFu31i_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_Us");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_Us");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_Us, BFu0c_BFu31i_Us)
//============================================================================



static void Test_BFu0c_BFu31i_Vp()
{
  {
    init_simple_test("BFu0c_BFu31i_Vp");
    static STRUCT_IF_C BFu0c_BFu31i_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu0c_BFu31i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31i_Vp");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31i_Vp, BFu0c_BFu31i_Vp)
//============================================================================



static void Test_BFu0c_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll, BFu0c_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu0c lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu0c, BFu0c_BFu31ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu0i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu31ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu0i, BFu0c_BFu31ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu31ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu31ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu0ll, BFu0c_BFu31ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu0s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu31ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu0s, BFu0c_BFu31ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu15i");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu15i");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "BFu0c_BFu31ll_BFu15i");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu31ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu15i, BFu0c_BFu31ll_BFu15i)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "BFu0c_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu31ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu15ll, BFu0c_BFu31ll_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu15s");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu15s");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "BFu0c_BFu31ll_BFu15s");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu31ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu15s, BFu0c_BFu31ll_BFu15s)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu16i");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu16i");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "BFu0c_BFu31ll_BFu16i");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu31ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu16i, BFu0c_BFu31ll_BFu16i)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "BFu0c_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu31ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu16ll, BFu0c_BFu31ll_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu16s");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu16s");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "BFu0c_BFu31ll_BFu16s");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu31ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu16s, BFu0c_BFu31ll_BFu16s)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu17i");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu17i");
    set_bf_and_test(lv, v2, 3, 7, 17, 1, "BFu0c_BFu31ll_BFu17i");
    set_bf_and_test(lv, v2, 3, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu31ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu17i, BFu0c_BFu31ll_BFu17i)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v2, 3, 7, 17, 1, "BFu0c_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v2, 3, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu31ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu17ll, BFu0c_BFu31ll_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu1c");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu1c");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "BFu0c_BFu31ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu1c, BFu0c_BFu31ll_BFu1c)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu1i");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu1i");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "BFu0c_BFu31ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu1i, BFu0c_BFu31ll_BFu1i)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "BFu0c_BFu31ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu1ll, BFu0c_BFu31ll_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu1s");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu31ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu1s");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "BFu0c_BFu31ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu1s, BFu0c_BFu31ll_BFu1s)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu31i");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 3, 7, 31, 1, "BFu0c_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 3, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu31i, BFu0c_BFu31ll_BFu31i)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 3, 7, 31, 1, "BFu0c_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 3, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu31ll, BFu0c_BFu31ll_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu32i");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 3, 7, 32, 1, "BFu0c_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 3, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu31ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu32i, BFu0c_BFu31ll_BFu32i)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 3, 7, 32, 1, "BFu0c_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 3, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu31ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu32ll, BFu0c_BFu31ll_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu33()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu33");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 3, 7, 33, 1, "BFu0c_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 3, 7, 33, hide_ull(1LL<<32), "BFu0c_BFu31ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu33, BFu0c_BFu31ll_BFu33)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu7c");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu7c");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "BFu0c_BFu31ll_BFu7c");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu31ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu7c, BFu0c_BFu31ll_BFu7c)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu7i");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu7i");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "BFu0c_BFu31ll_BFu7i");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu31ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu7i, BFu0c_BFu31ll_BFu7i)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "BFu0c_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu31ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu7ll, BFu0c_BFu31ll_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu7s");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu7s");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "BFu0c_BFu31ll_BFu7s");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu31ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu7s, BFu0c_BFu31ll_BFu7s)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu8c");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu8c");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "BFu0c_BFu31ll_BFu8c");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu31ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu8c, BFu0c_BFu31ll_BFu8c)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu8i");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu8i");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "BFu0c_BFu31ll_BFu8i");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu31ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu8i, BFu0c_BFu31ll_BFu8i)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "BFu0c_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu31ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu8ll, BFu0c_BFu31ll_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu8s");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu8s");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "BFu0c_BFu31ll_BFu8s");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu31ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu8s, BFu0c_BFu31ll_BFu8s)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu9i");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu9i");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "BFu0c_BFu31ll_BFu9i");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu31ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu9i, BFu0c_BFu31ll_BFu9i)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "BFu0c_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu31ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu9ll, BFu0c_BFu31ll_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu31ll_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu31ll_BFu9s");
    static STRUCT_IF_C BFu0c_BFu31ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_BFu9s");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "BFu0c_BFu31ll_BFu9s");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu31ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_BFu9s, BFu0c_BFu31ll_BFu9s)
//============================================================================



static void Test_BFu0c_BFu31ll_C()
{
  {
    init_simple_test("BFu0c_BFu31ll_C");
    static STRUCT_IF_C BFu0c_BFu31ll_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_C");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_C");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_C, BFu0c_BFu31ll_C)
//============================================================================



static void Test_BFu0c_BFu31ll_D()
{
  {
    init_simple_test("BFu0c_BFu31ll_D");
    static STRUCT_IF_C BFu0c_BFu31ll_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu31ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_D");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_D");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_D, BFu0c_BFu31ll_D)
//============================================================================



static void Test_BFu0c_BFu31ll_F()
{
  {
    init_simple_test("BFu0c_BFu31ll_F");
    static STRUCT_IF_C BFu0c_BFu31ll_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_F");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_F");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_F, BFu0c_BFu31ll_F)
//============================================================================



static void Test_BFu0c_BFu31ll_I()
{
  {
    init_simple_test("BFu0c_BFu31ll_I");
    static STRUCT_IF_C BFu0c_BFu31ll_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_I");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_I");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_I, BFu0c_BFu31ll_I)
//============================================================================



static void Test_BFu0c_BFu31ll_Ip()
{
  {
    init_simple_test("BFu0c_BFu31ll_Ip");
    static STRUCT_IF_C BFu0c_BFu31ll_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu0c_BFu31ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_Ip");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_Ip, BFu0c_BFu31ll_Ip)
//============================================================================



static void Test_BFu0c_BFu31ll_L()
{
  {
    init_simple_test("BFu0c_BFu31ll_L");
    static STRUCT_IF_C BFu0c_BFu31ll_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu31ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_L");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_L");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_L, BFu0c_BFu31ll_L)
//============================================================================



static void Test_BFu0c_BFu31ll_S()
{
  {
    init_simple_test("BFu0c_BFu31ll_S");
    static STRUCT_IF_C BFu0c_BFu31ll_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_S");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_S");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_S, BFu0c_BFu31ll_S)
//============================================================================



static void Test_BFu0c_BFu31ll_Uc()
{
  {
    init_simple_test("BFu0c_BFu31ll_Uc");
    static STRUCT_IF_C BFu0c_BFu31ll_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu31ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_Uc");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_Uc, BFu0c_BFu31ll_Uc)
//============================================================================



static void Test_BFu0c_BFu31ll_Ui()
{
  {
    init_simple_test("BFu0c_BFu31ll_Ui");
    static STRUCT_IF_C BFu0c_BFu31ll_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu31ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_Ui");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_Ui, BFu0c_BFu31ll_Ui)
//============================================================================



static void Test_BFu0c_BFu31ll_Ul()
{
  {
    init_simple_test("BFu0c_BFu31ll_Ul");
    static STRUCT_IF_C BFu0c_BFu31ll_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu31ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_Ul");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_Ul, BFu0c_BFu31ll_Ul)
//============================================================================



static void Test_BFu0c_BFu31ll_Us()
{
  {
    init_simple_test("BFu0c_BFu31ll_Us");
    static STRUCT_IF_C BFu0c_BFu31ll_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu31ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_Us");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_Us, BFu0c_BFu31ll_Us)
//============================================================================



static void Test_BFu0c_BFu31ll_Vp()
{
  {
    init_simple_test("BFu0c_BFu31ll_Vp");
    static STRUCT_IF_C BFu0c_BFu31ll_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu0c_BFu31ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu31ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "BFu0c_BFu31ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu31ll_Vp");
    check_field_offset(lv, v2, 4, "BFu0c_BFu31ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu31ll_Vp, BFu0c_BFu31ll_Vp)
//============================================================================



static void Test_BFu0c_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu32i");
    static STRUCT_IF_C BFu0c_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i, BFu0c_BFu32i)
//============================================================================



static void Test_BFu0c_BFu32i_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu0c");
    static STRUCT_IF_C BFu0c_BFu32i_BFu0c lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu32i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu0c, BFu0c_BFu32i_BFu0c)
//============================================================================



static void Test_BFu0c_BFu32i_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu0i");
    static STRUCT_IF_C BFu0c_BFu32i_BFu0i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu32i_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu32i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu0i, BFu0c_BFu32i_BFu0i)
//============================================================================



static void Test_BFu0c_BFu32i_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu32i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu32i_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu32i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu0ll, BFu0c_BFu32i_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu32i_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu0s");
    static STRUCT_IF_C BFu0c_BFu32i_BFu0s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu32i_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu32i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu0s, BFu0c_BFu32i_BFu0s)
//============================================================================



static void Test_BFu0c_BFu32i_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu15i");
    static STRUCT_IF_C BFu0c_BFu32i_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "BFu0c_BFu32i_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu32i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu15i, BFu0c_BFu32i_BFu15i)
//============================================================================



static void Test_BFu0c_BFu32i_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu32i_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "BFu0c_BFu32i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu32i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu15ll, BFu0c_BFu32i_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu32i_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu15s");
    static STRUCT_IF_C BFu0c_BFu32i_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "BFu0c_BFu32i_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu32i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu15s, BFu0c_BFu32i_BFu15s)
//============================================================================



static void Test_BFu0c_BFu32i_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu16i");
    static STRUCT_IF_C BFu0c_BFu32i_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "BFu0c_BFu32i_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu32i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu16i, BFu0c_BFu32i_BFu16i)
//============================================================================



static void Test_BFu0c_BFu32i_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu32i_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "BFu0c_BFu32i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu32i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu16ll, BFu0c_BFu32i_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu32i_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu16s");
    static STRUCT_IF_C BFu0c_BFu32i_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "BFu0c_BFu32i_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu32i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu16s, BFu0c_BFu32i_BFu16s)
//============================================================================



static void Test_BFu0c_BFu32i_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu17i");
    static STRUCT_IF_C BFu0c_BFu32i_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu32i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "BFu0c_BFu32i_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu32i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu17i, BFu0c_BFu32i_BFu17i)
//============================================================================



static void Test_BFu0c_BFu32i_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu32i_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu32i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "BFu0c_BFu32i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu32i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu17ll, BFu0c_BFu32i_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu32i_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu1c");
    static STRUCT_IF_C BFu0c_BFu32i_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu1c");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "BFu0c_BFu32i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu1c, BFu0c_BFu32i_BFu1c)
//============================================================================



static void Test_BFu0c_BFu32i_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu1i");
    static STRUCT_IF_C BFu0c_BFu32i_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu1i");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "BFu0c_BFu32i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu1i, BFu0c_BFu32i_BFu1i)
//============================================================================



static void Test_BFu0c_BFu32i_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu32i_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "BFu0c_BFu32i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu1ll, BFu0c_BFu32i_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu32i_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu1s");
    static STRUCT_IF_C BFu0c_BFu32i_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu1s");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "BFu0c_BFu32i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu1s, BFu0c_BFu32i_BFu1s)
//============================================================================



static void Test_BFu0c_BFu32i_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu31i");
    static STRUCT_IF_C BFu0c_BFu32i_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "BFu0c_BFu32i_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu32i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu31i, BFu0c_BFu32i_BFu31i)
//============================================================================



static void Test_BFu0c_BFu32i_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu32i_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "BFu0c_BFu32i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu32i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu31ll, BFu0c_BFu32i_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu32i_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu32i");
    static STRUCT_IF_C BFu0c_BFu32i_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "BFu0c_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu32i, BFu0c_BFu32i_BFu32i)
//============================================================================



static void Test_BFu0c_BFu32i_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu32i_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "BFu0c_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu32ll, BFu0c_BFu32i_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu32i_BFu33()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu33");
    static STRUCT_IF_C BFu0c_BFu32i_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu32i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "BFu0c_BFu32i_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu32i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu33, BFu0c_BFu32i_BFu33)
//============================================================================



static void Test_BFu0c_BFu32i_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu7c");
    static STRUCT_IF_C BFu0c_BFu32i_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu7c");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "BFu0c_BFu32i_BFu7c");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu32i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu7c, BFu0c_BFu32i_BFu7c)
//============================================================================



static void Test_BFu0c_BFu32i_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu7i");
    static STRUCT_IF_C BFu0c_BFu32i_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu7i");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "BFu0c_BFu32i_BFu7i");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu32i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu7i, BFu0c_BFu32i_BFu7i)
//============================================================================



static void Test_BFu0c_BFu32i_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu32i_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "BFu0c_BFu32i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu32i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu7ll, BFu0c_BFu32i_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu32i_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu7s");
    static STRUCT_IF_C BFu0c_BFu32i_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu7s");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "BFu0c_BFu32i_BFu7s");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu32i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu7s, BFu0c_BFu32i_BFu7s)
//============================================================================



static void Test_BFu0c_BFu32i_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu8c");
    static STRUCT_IF_C BFu0c_BFu32i_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "BFu0c_BFu32i_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu32i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu8c, BFu0c_BFu32i_BFu8c)
//============================================================================



static void Test_BFu0c_BFu32i_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu8i");
    static STRUCT_IF_C BFu0c_BFu32i_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "BFu0c_BFu32i_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu32i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu8i, BFu0c_BFu32i_BFu8i)
//============================================================================



static void Test_BFu0c_BFu32i_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu32i_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "BFu0c_BFu32i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu32i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu8ll, BFu0c_BFu32i_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu32i_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu8s");
    static STRUCT_IF_C BFu0c_BFu32i_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "BFu0c_BFu32i_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu32i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu8s, BFu0c_BFu32i_BFu8s)
//============================================================================



static void Test_BFu0c_BFu32i_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu9i");
    static STRUCT_IF_C BFu0c_BFu32i_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu9i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "BFu0c_BFu32i_BFu9i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu32i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu9i, BFu0c_BFu32i_BFu9i)
//============================================================================



static void Test_BFu0c_BFu32i_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu32i_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "BFu0c_BFu32i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu32i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu9ll, BFu0c_BFu32i_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu32i_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu32i_BFu9s");
    static STRUCT_IF_C BFu0c_BFu32i_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_BFu9s");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "BFu0c_BFu32i_BFu9s");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu32i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_BFu9s, BFu0c_BFu32i_BFu9s)
//============================================================================



static void Test_BFu0c_BFu32i_C()
{
  {
    init_simple_test("BFu0c_BFu32i_C");
    static STRUCT_IF_C BFu0c_BFu32i_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_C");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_C, BFu0c_BFu32i_C)
//============================================================================



static void Test_BFu0c_BFu32i_D()
{
  {
    init_simple_test("BFu0c_BFu32i_D");
    static STRUCT_IF_C BFu0c_BFu32i_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu32i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_D");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_D, BFu0c_BFu32i_D)
//============================================================================



static void Test_BFu0c_BFu32i_F()
{
  {
    init_simple_test("BFu0c_BFu32i_F");
    static STRUCT_IF_C BFu0c_BFu32i_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_F");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_F, BFu0c_BFu32i_F)
//============================================================================



static void Test_BFu0c_BFu32i_I()
{
  {
    init_simple_test("BFu0c_BFu32i_I");
    static STRUCT_IF_C BFu0c_BFu32i_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_I");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_I, BFu0c_BFu32i_I)
//============================================================================



static void Test_BFu0c_BFu32i_Ip()
{
  {
    init_simple_test("BFu0c_BFu32i_Ip");
    static STRUCT_IF_C BFu0c_BFu32i_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu0c_BFu32i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_Ip");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_Ip, BFu0c_BFu32i_Ip)
//============================================================================



static void Test_BFu0c_BFu32i_L()
{
  {
    init_simple_test("BFu0c_BFu32i_L");
    static STRUCT_IF_C BFu0c_BFu32i_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu32i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_L");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_L, BFu0c_BFu32i_L)
//============================================================================



static void Test_BFu0c_BFu32i_S()
{
  {
    init_simple_test("BFu0c_BFu32i_S");
    static STRUCT_IF_C BFu0c_BFu32i_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_S");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_S, BFu0c_BFu32i_S)
//============================================================================



static void Test_BFu0c_BFu32i_Uc()
{
  {
    init_simple_test("BFu0c_BFu32i_Uc");
    static STRUCT_IF_C BFu0c_BFu32i_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_Uc");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_Uc, BFu0c_BFu32i_Uc)
//============================================================================



static void Test_BFu0c_BFu32i_Ui()
{
  {
    init_simple_test("BFu0c_BFu32i_Ui");
    static STRUCT_IF_C BFu0c_BFu32i_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_Ui");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_Ui, BFu0c_BFu32i_Ui)
//============================================================================



static void Test_BFu0c_BFu32i_Ul()
{
  {
    init_simple_test("BFu0c_BFu32i_Ul");
    static STRUCT_IF_C BFu0c_BFu32i_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu32i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_Ul");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_Ul, BFu0c_BFu32i_Ul)
//============================================================================



static void Test_BFu0c_BFu32i_Us()
{
  {
    init_simple_test("BFu0c_BFu32i_Us");
    static STRUCT_IF_C BFu0c_BFu32i_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_Us");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_Us, BFu0c_BFu32i_Us)
//============================================================================



static void Test_BFu0c_BFu32i_Vp()
{
  {
    init_simple_test("BFu0c_BFu32i_Vp");
    static STRUCT_IF_C BFu0c_BFu32i_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu0c_BFu32i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32i_Vp");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32i_Vp, BFu0c_BFu32i_Vp)
//============================================================================



static void Test_BFu0c_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll, BFu0c_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu0c");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu0c lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu32ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu0c, BFu0c_BFu32ll_BFu0c)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu0i");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu0i lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu32ll_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu32ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu0i, BFu0c_BFu32ll_BFu0i)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu32ll_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu32ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu0ll, BFu0c_BFu32ll_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu0s");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu0s lv;
    check2(sizeof(lv), 4, "sizeof(BFu0c_BFu32ll_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu32ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu0s, BFu0c_BFu32ll_BFu0s)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu15i");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "BFu0c_BFu32ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu32ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu15i, BFu0c_BFu32ll_BFu15i)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "BFu0c_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu32ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu15ll, BFu0c_BFu32ll_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu15s");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "BFu0c_BFu32ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "BFu0c_BFu32ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu15s, BFu0c_BFu32ll_BFu15s)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu16i");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "BFu0c_BFu32ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu32ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu16i, BFu0c_BFu32ll_BFu16i)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "BFu0c_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu32ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu16ll, BFu0c_BFu32ll_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu16s");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "BFu0c_BFu32ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "BFu0c_BFu32ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu16s, BFu0c_BFu32ll_BFu16s)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu17i");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu32ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "BFu0c_BFu32ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu32ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu17i, BFu0c_BFu32ll_BFu17i)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu32ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "BFu0c_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "BFu0c_BFu32ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu17ll, BFu0c_BFu32ll_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu1c");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "BFu0c_BFu32ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu1c, BFu0c_BFu32ll_BFu1c)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu1i");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "BFu0c_BFu32ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu1i, BFu0c_BFu32ll_BFu1i)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "BFu0c_BFu32ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu1ll, BFu0c_BFu32ll_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu1s");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "BFu0c_BFu32ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu1s, BFu0c_BFu32ll_BFu1s)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu31i");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "BFu0c_BFu32ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu32ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu31i, BFu0c_BFu32ll_BFu31i)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "BFu0c_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "BFu0c_BFu32ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu31ll, BFu0c_BFu32ll_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu32i");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "BFu0c_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu32i, BFu0c_BFu32ll_BFu32i)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "BFu0c_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu32ll, BFu0c_BFu32ll_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu33()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu33");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu32ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "BFu0c_BFu32ll_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu32ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu33, BFu0c_BFu32ll_BFu33)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu7c");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "BFu0c_BFu32ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu32ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu7c, BFu0c_BFu32ll_BFu7c)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu7i");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "BFu0c_BFu32ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu32ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu7i, BFu0c_BFu32ll_BFu7i)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "BFu0c_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu32ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu7ll, BFu0c_BFu32ll_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu7s");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "BFu0c_BFu32ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu32ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu7s, BFu0c_BFu32ll_BFu7s)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu8c");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "BFu0c_BFu32ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu32ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu8c, BFu0c_BFu32ll_BFu8c)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu8i");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "BFu0c_BFu32ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu32ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu8i, BFu0c_BFu32ll_BFu8i)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "BFu0c_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu32ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu8ll, BFu0c_BFu32ll_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu8s");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "BFu0c_BFu32ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "BFu0c_BFu32ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu8s, BFu0c_BFu32ll_BFu8s)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu9i");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "BFu0c_BFu32ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu32ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu9i, BFu0c_BFu32ll_BFu9i)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "BFu0c_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu32ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu9ll, BFu0c_BFu32ll_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu32ll_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu32ll_BFu9s");
    static STRUCT_IF_C BFu0c_BFu32ll_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "BFu0c_BFu32ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "BFu0c_BFu32ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_BFu9s, BFu0c_BFu32ll_BFu9s)
//============================================================================



static void Test_BFu0c_BFu32ll_C()
{
  {
    init_simple_test("BFu0c_BFu32ll_C");
    static STRUCT_IF_C BFu0c_BFu32ll_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_C");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_C, BFu0c_BFu32ll_C)
//============================================================================



static void Test_BFu0c_BFu32ll_D()
{
  {
    init_simple_test("BFu0c_BFu32ll_D");
    static STRUCT_IF_C BFu0c_BFu32ll_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu32ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_D");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_D, BFu0c_BFu32ll_D)
//============================================================================



static void Test_BFu0c_BFu32ll_F()
{
  {
    init_simple_test("BFu0c_BFu32ll_F");
    static STRUCT_IF_C BFu0c_BFu32ll_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_F");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_F, BFu0c_BFu32ll_F)
//============================================================================



static void Test_BFu0c_BFu32ll_I()
{
  {
    init_simple_test("BFu0c_BFu32ll_I");
    static STRUCT_IF_C BFu0c_BFu32ll_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_I");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_I, BFu0c_BFu32ll_I)
//============================================================================



static void Test_BFu0c_BFu32ll_Ip()
{
  {
    init_simple_test("BFu0c_BFu32ll_Ip");
    static STRUCT_IF_C BFu0c_BFu32ll_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu0c_BFu32ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_Ip");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_Ip, BFu0c_BFu32ll_Ip)
//============================================================================



static void Test_BFu0c_BFu32ll_L()
{
  {
    init_simple_test("BFu0c_BFu32ll_L");
    static STRUCT_IF_C BFu0c_BFu32ll_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu32ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_L");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_L, BFu0c_BFu32ll_L)
//============================================================================



static void Test_BFu0c_BFu32ll_S()
{
  {
    init_simple_test("BFu0c_BFu32ll_S");
    static STRUCT_IF_C BFu0c_BFu32ll_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_S");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_S, BFu0c_BFu32ll_S)
//============================================================================



static void Test_BFu0c_BFu32ll_Uc()
{
  {
    init_simple_test("BFu0c_BFu32ll_Uc");
    static STRUCT_IF_C BFu0c_BFu32ll_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu32ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_Uc");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_Uc, BFu0c_BFu32ll_Uc)
//============================================================================



static void Test_BFu0c_BFu32ll_Ui()
{
  {
    init_simple_test("BFu0c_BFu32ll_Ui");
    static STRUCT_IF_C BFu0c_BFu32ll_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu32ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_Ui");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_Ui, BFu0c_BFu32ll_Ui)
//============================================================================



static void Test_BFu0c_BFu32ll_Ul()
{
  {
    init_simple_test("BFu0c_BFu32ll_Ul");
    static STRUCT_IF_C BFu0c_BFu32ll_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu0c_BFu32ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_Ul");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_Ul, BFu0c_BFu32ll_Ul)
//============================================================================



static void Test_BFu0c_BFu32ll_Us()
{
  {
    init_simple_test("BFu0c_BFu32ll_Us");
    static STRUCT_IF_C BFu0c_BFu32ll_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu32ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_Us");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_Us, BFu0c_BFu32ll_Us)
//============================================================================



static void Test_BFu0c_BFu32ll_Vp()
{
  {
    init_simple_test("BFu0c_BFu32ll_Vp");
    static STRUCT_IF_C BFu0c_BFu32ll_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu0c_BFu32ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu32ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "BFu0c_BFu32ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "BFu0c_BFu32ll_Vp");
    check_field_offset(lv, v2, 4, "BFu0c_BFu32ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu32ll_Vp, BFu0c_BFu32ll_Vp)
//============================================================================



static void Test_BFu0c_BFu33()
{
  {
    init_simple_test("BFu0c_BFu33");
    static STRUCT_IF_C BFu0c_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33, BFu0c_BFu33)
//============================================================================



static void Test_BFu0c_BFu33_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu33_BFu0c");
    static STRUCT_IF_C BFu0c_BFu33_BFu0c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu33_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu0c, BFu0c_BFu33_BFu0c)
//============================================================================



static void Test_BFu0c_BFu33_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu33_BFu0i");
    static STRUCT_IF_C BFu0c_BFu33_BFu0i lv;
    check2(sizeof(lv), ABISELECT(8,8), "sizeof(BFu0c_BFu33_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu33_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu0i, BFu0c_BFu33_BFu0i)
//============================================================================



static void Test_BFu0c_BFu33_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu33_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu33_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,8), "sizeof(BFu0c_BFu33_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu33_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu0ll, BFu0c_BFu33_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu33_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu33_BFu0s");
    static STRUCT_IF_C BFu0c_BFu33_BFu0s lv;
    check2(sizeof(lv), ABISELECT(6,6), "sizeof(BFu0c_BFu33_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu33_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu0s, BFu0c_BFu33_BFu0s)
//============================================================================



static void Test_BFu0c_BFu33_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu33_BFu15i");
    static STRUCT_IF_C BFu0c_BFu33_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "BFu0c_BFu33_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu33_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu15i, BFu0c_BFu33_BFu15i)
//============================================================================



static void Test_BFu0c_BFu33_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu33_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu33_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "BFu0c_BFu33_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu33_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu15ll, BFu0c_BFu33_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu33_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu33_BFu15s");
    static STRUCT_IF_C BFu0c_BFu33_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "BFu0c_BFu33_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "BFu0c_BFu33_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu15s, BFu0c_BFu33_BFu15s)
//============================================================================



static void Test_BFu0c_BFu33_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu33_BFu16i");
    static STRUCT_IF_C BFu0c_BFu33_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu33_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "BFu0c_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu33_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu16i, BFu0c_BFu33_BFu16i)
//============================================================================



static void Test_BFu0c_BFu33_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu33_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu33_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu33_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "BFu0c_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu33_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu16ll, BFu0c_BFu33_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu33_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu33_BFu16s");
    static STRUCT_IF_C BFu0c_BFu33_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu33_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "BFu0c_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "BFu0c_BFu33_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu16s, BFu0c_BFu33_BFu16s)
//============================================================================



static void Test_BFu0c_BFu33_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu33_BFu17i");
    static STRUCT_IF_C BFu0c_BFu33_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu33_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "BFu0c_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu33_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu17i, BFu0c_BFu33_BFu17i)
//============================================================================



static void Test_BFu0c_BFu33_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu33_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu33_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu33_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "BFu0c_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "BFu0c_BFu33_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu17ll, BFu0c_BFu33_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu33_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu33_BFu1c");
    static STRUCT_IF_C BFu0c_BFu33_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu33_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "BFu0c_BFu33_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu1c, BFu0c_BFu33_BFu1c)
//============================================================================



static void Test_BFu0c_BFu33_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu33_BFu1i");
    static STRUCT_IF_C BFu0c_BFu33_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu33_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "BFu0c_BFu33_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu1i, BFu0c_BFu33_BFu1i)
//============================================================================



static void Test_BFu0c_BFu33_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu33_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu33_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu33_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "BFu0c_BFu33_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu1ll, BFu0c_BFu33_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu33_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu33_BFu1s");
    static STRUCT_IF_C BFu0c_BFu33_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu33_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "BFu0c_BFu33_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu1s, BFu0c_BFu33_BFu1s)
//============================================================================



static void Test_BFu0c_BFu33_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu33_BFu31i");
    static STRUCT_IF_C BFu0c_BFu33_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu33_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "BFu0c_BFu33_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu33_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu31i, BFu0c_BFu33_BFu31i)
//============================================================================



static void Test_BFu0c_BFu33_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu33_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu33_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu0c_BFu33_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "BFu0c_BFu33_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "BFu0c_BFu33_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu31ll, BFu0c_BFu33_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu33_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu33_BFu32i");
    static STRUCT_IF_C BFu0c_BFu33_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu33_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "BFu0c_BFu33_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu33_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu32i, BFu0c_BFu33_BFu32i)
//============================================================================



static void Test_BFu0c_BFu33_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu33_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu33_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu33_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "BFu0c_BFu33_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "BFu0c_BFu33_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu32ll, BFu0c_BFu33_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu33_BFu33()
{
  {
    init_simple_test("BFu0c_BFu33_BFu33");
    static STRUCT_IF_C BFu0c_BFu33_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu33_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "BFu0c_BFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu33, BFu0c_BFu33_BFu33)
//============================================================================



static void Test_BFu0c_BFu33_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu33_BFu7c");
    static STRUCT_IF_C BFu0c_BFu33_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu33_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "BFu0c_BFu33_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu33_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu7c, BFu0c_BFu33_BFu7c)
//============================================================================



static void Test_BFu0c_BFu33_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu33_BFu7i");
    static STRUCT_IF_C BFu0c_BFu33_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu33_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "BFu0c_BFu33_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu33_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu7i, BFu0c_BFu33_BFu7i)
//============================================================================



static void Test_BFu0c_BFu33_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu33_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu33_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu33_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "BFu0c_BFu33_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu33_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu7ll, BFu0c_BFu33_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu33_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu33_BFu7s");
    static STRUCT_IF_C BFu0c_BFu33_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu33_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "BFu0c_BFu33_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "BFu0c_BFu33_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu7s, BFu0c_BFu33_BFu7s)
//============================================================================



static void Test_BFu0c_BFu33_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu33_BFu8c");
    static STRUCT_IF_C BFu0c_BFu33_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "BFu0c_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu33_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu8c, BFu0c_BFu33_BFu8c)
//============================================================================



static void Test_BFu0c_BFu33_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu33_BFu8i");
    static STRUCT_IF_C BFu0c_BFu33_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "BFu0c_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu33_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu8i, BFu0c_BFu33_BFu8i)
//============================================================================



static void Test_BFu0c_BFu33_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu33_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu33_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "BFu0c_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu33_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu8ll, BFu0c_BFu33_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu33_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu33_BFu8s");
    static STRUCT_IF_C BFu0c_BFu33_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "BFu0c_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "BFu0c_BFu33_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu8s, BFu0c_BFu33_BFu8s)
//============================================================================



static void Test_BFu0c_BFu33_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu33_BFu9i");
    static STRUCT_IF_C BFu0c_BFu33_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "BFu0c_BFu33_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu33_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu9i, BFu0c_BFu33_BFu9i)
//============================================================================



static void Test_BFu0c_BFu33_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu33_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu33_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "BFu0c_BFu33_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu33_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu9ll, BFu0c_BFu33_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu33_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu33_BFu9s");
    static STRUCT_IF_C BFu0c_BFu33_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "BFu0c_BFu33_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "BFu0c_BFu33_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_BFu9s, BFu0c_BFu33_BFu9s)
//============================================================================



static void Test_BFu0c_BFu33_C()
{
  {
    init_simple_test("BFu0c_BFu33_C");
    static STRUCT_IF_C BFu0c_BFu33_C lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_C");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_C, BFu0c_BFu33_C)
//============================================================================



static void Test_BFu0c_BFu33_D()
{
  {
    init_simple_test("BFu0c_BFu33_D");
    static STRUCT_IF_C BFu0c_BFu33_D lv;
    check2(sizeof(lv), 13, "sizeof(BFu0c_BFu33_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_D");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_D, BFu0c_BFu33_D)
//============================================================================



static void Test_BFu0c_BFu33_F()
{
  {
    init_simple_test("BFu0c_BFu33_F");
    static STRUCT_IF_C BFu0c_BFu33_F lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu33_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_F");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_F, BFu0c_BFu33_F)
//============================================================================



static void Test_BFu0c_BFu33_I()
{
  {
    init_simple_test("BFu0c_BFu33_I");
    static STRUCT_IF_C BFu0c_BFu33_I lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu33_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_I");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_I, BFu0c_BFu33_I)
//============================================================================



static void Test_BFu0c_BFu33_Ip()
{
  {
    init_simple_test("BFu0c_BFu33_Ip");
    static STRUCT_IF_C BFu0c_BFu33_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu0c_BFu33_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_Ip");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_Ip, BFu0c_BFu33_Ip)
//============================================================================



static void Test_BFu0c_BFu33_L()
{
  {
    init_simple_test("BFu0c_BFu33_L");
    static STRUCT_IF_C BFu0c_BFu33_L lv;
    check2(sizeof(lv), 13, "sizeof(BFu0c_BFu33_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_L");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_L, BFu0c_BFu33_L)
//============================================================================



static void Test_BFu0c_BFu33_S()
{
  {
    init_simple_test("BFu0c_BFu33_S");
    static STRUCT_IF_C BFu0c_BFu33_S lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu33_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_S");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_S, BFu0c_BFu33_S)
//============================================================================



static void Test_BFu0c_BFu33_Uc()
{
  {
    init_simple_test("BFu0c_BFu33_Uc");
    static STRUCT_IF_C BFu0c_BFu33_Uc lv;
    check2(sizeof(lv), 6, "sizeof(BFu0c_BFu33_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_Uc");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_Uc, BFu0c_BFu33_Uc)
//============================================================================



static void Test_BFu0c_BFu33_Ui()
{
  {
    init_simple_test("BFu0c_BFu33_Ui");
    static STRUCT_IF_C BFu0c_BFu33_Ui lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu33_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_Ui");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_Ui, BFu0c_BFu33_Ui)
//============================================================================



static void Test_BFu0c_BFu33_Ul()
{
  {
    init_simple_test("BFu0c_BFu33_Ul");
    static STRUCT_IF_C BFu0c_BFu33_Ul lv;
    check2(sizeof(lv), 13, "sizeof(BFu0c_BFu33_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_Ul");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_Ul, BFu0c_BFu33_Ul)
//============================================================================



static void Test_BFu0c_BFu33_Us()
{
  {
    init_simple_test("BFu0c_BFu33_Us");
    static STRUCT_IF_C BFu0c_BFu33_Us lv;
    check2(sizeof(lv), 7, "sizeof(BFu0c_BFu33_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_Us");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_Us, BFu0c_BFu33_Us)
//============================================================================



static void Test_BFu0c_BFu33_Vp()
{
  {
    init_simple_test("BFu0c_BFu33_Vp");
    static STRUCT_IF_C BFu0c_BFu33_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu0c_BFu33_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu33_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "BFu0c_BFu33_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "BFu0c_BFu33_Vp");
    check_field_offset(lv, v2, 5, "BFu0c_BFu33_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu33_Vp, BFu0c_BFu33_Vp)
//============================================================================



static void Test_BFu0c_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu7c");
    static STRUCT_IF_C BFu0c_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c, BFu0c_BFu7c)
//============================================================================



static void Test_BFu0c_BFu7c_BFu0c()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu0c");
    static STRUCT_IF_C BFu0c_BFu7c_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu7c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu0c, BFu0c_BFu7c_BFu0c)
//============================================================================



static void Test_BFu0c_BFu7c_BFu0i()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu0i");
    static STRUCT_IF_C BFu0c_BFu7c_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(BFu0c_BFu7c_BFu0i)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu7c_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu0i, BFu0c_BFu7c_BFu0i)
//============================================================================



static void Test_BFu0c_BFu7c_BFu0ll()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu0ll");
    static STRUCT_IF_C BFu0c_BFu7c_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(BFu0c_BFu7c_BFu0ll)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu7c_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu0ll, BFu0c_BFu7c_BFu0ll)
//============================================================================



static void Test_BFu0c_BFu7c_BFu0s()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu0s");
    static STRUCT_IF_C BFu0c_BFu7c_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(BFu0c_BFu7c_BFu0s)");
    check2(__alignof__(lv), ABISELECT(1,1), "__alignof__(BFu0c_BFu7c_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu0s, BFu0c_BFu7c_BFu0s)
//============================================================================



static void Test_BFu0c_BFu7c_BFu15i()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu15i");
    static STRUCT_IF_C BFu0c_BFu7c_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu7c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "BFu0c_BFu7c_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu7c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu15i, BFu0c_BFu7c_BFu15i)
//============================================================================



static void Test_BFu0c_BFu7c_BFu15ll()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu15ll");
    static STRUCT_IF_C BFu0c_BFu7c_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu7c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "BFu0c_BFu7c_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu7c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu15ll, BFu0c_BFu7c_BFu15ll)
//============================================================================



static void Test_BFu0c_BFu7c_BFu15s()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu15s");
    static STRUCT_IF_C BFu0c_BFu7c_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu7c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "BFu0c_BFu7c_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "BFu0c_BFu7c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu15s, BFu0c_BFu7c_BFu15s)
//============================================================================



static void Test_BFu0c_BFu7c_BFu16i()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu16i");
    static STRUCT_IF_C BFu0c_BFu7c_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu7c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "BFu0c_BFu7c_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu7c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu16i, BFu0c_BFu7c_BFu16i)
//============================================================================



static void Test_BFu0c_BFu7c_BFu16ll()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu16ll");
    static STRUCT_IF_C BFu0c_BFu7c_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu7c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "BFu0c_BFu7c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu7c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu16ll, BFu0c_BFu7c_BFu16ll)
//============================================================================



static void Test_BFu0c_BFu7c_BFu16s()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu16s");
    static STRUCT_IF_C BFu0c_BFu7c_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu7c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "BFu0c_BFu7c_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "BFu0c_BFu7c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu16s, BFu0c_BFu7c_BFu16s)
//============================================================================



static void Test_BFu0c_BFu7c_BFu17i()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu17i");
    static STRUCT_IF_C BFu0c_BFu7c_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu7c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "BFu0c_BFu7c_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu7c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu17i, BFu0c_BFu7c_BFu17i)
//============================================================================



static void Test_BFu0c_BFu7c_BFu17ll()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu17ll");
    static STRUCT_IF_C BFu0c_BFu7c_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu0c_BFu7c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "BFu0c_BFu7c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "BFu0c_BFu7c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu17ll, BFu0c_BFu7c_BFu17ll)
//============================================================================



static void Test_BFu0c_BFu7c_BFu1c()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu1c");
    static STRUCT_IF_C BFu0c_BFu7c_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu7c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "BFu0c_BFu7c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu1c, BFu0c_BFu7c_BFu1c)
//============================================================================



static void Test_BFu0c_BFu7c_BFu1i()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu1i");
    static STRUCT_IF_C BFu0c_BFu7c_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu7c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "BFu0c_BFu7c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu1i, BFu0c_BFu7c_BFu1i)
//============================================================================



static void Test_BFu0c_BFu7c_BFu1ll()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu1ll");
    static STRUCT_IF_C BFu0c_BFu7c_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu7c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "BFu0c_BFu7c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu1ll, BFu0c_BFu7c_BFu1ll)
//============================================================================



static void Test_BFu0c_BFu7c_BFu1s()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu1s");
    static STRUCT_IF_C BFu0c_BFu7c_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(BFu0c_BFu7c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "BFu0c_BFu7c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu1s, BFu0c_BFu7c_BFu1s)
//============================================================================



static void Test_BFu0c_BFu7c_BFu31i()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu31i");
    static STRUCT_IF_C BFu0c_BFu7c_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu7c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "BFu0c_BFu7c_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu7c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu31i, BFu0c_BFu7c_BFu31i)
//============================================================================



static void Test_BFu0c_BFu7c_BFu31ll()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu31ll");
    static STRUCT_IF_C BFu0c_BFu7c_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu7c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "BFu0c_BFu7c_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "BFu0c_BFu7c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu31ll, BFu0c_BFu7c_BFu31ll)
//============================================================================



static void Test_BFu0c_BFu7c_BFu32i()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu32i");
    static STRUCT_IF_C BFu0c_BFu7c_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu7c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "BFu0c_BFu7c_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu7c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu32i, BFu0c_BFu7c_BFu32i)
//============================================================================



static void Test_BFu0c_BFu7c_BFu32ll()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu32ll");
    static STRUCT_IF_C BFu0c_BFu7c_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu7c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "BFu0c_BFu7c_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "BFu0c_BFu7c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu32ll, BFu0c_BFu7c_BFu32ll)
//============================================================================



static void Test_BFu0c_BFu7c_BFu33()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu33");
    static STRUCT_IF_C BFu0c_BFu7c_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu7c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "BFu0c_BFu7c_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "BFu0c_BFu7c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu33, BFu0c_BFu7c_BFu33)
//============================================================================



static void Test_BFu0c_BFu7c_BFu7c()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu7c");
    static STRUCT_IF_C BFu0c_BFu7c_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "BFu0c_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu7c, BFu0c_BFu7c_BFu7c)
//============================================================================



static void Test_BFu0c_BFu7c_BFu7i()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu7i");
    static STRUCT_IF_C BFu0c_BFu7c_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "BFu0c_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu7i, BFu0c_BFu7c_BFu7i)
//============================================================================



static void Test_BFu0c_BFu7c_BFu7ll()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu7ll");
    static STRUCT_IF_C BFu0c_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "BFu0c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu7ll, BFu0c_BFu7c_BFu7ll)
//============================================================================



static void Test_BFu0c_BFu7c_BFu7s()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu7s");
    static STRUCT_IF_C BFu0c_BFu7c_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "BFu0c_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu7s, BFu0c_BFu7c_BFu7s)
//============================================================================



static void Test_BFu0c_BFu7c_BFu8c()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu8c");
    static STRUCT_IF_C BFu0c_BFu7c_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "BFu0c_BFu7c_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu7c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu8c, BFu0c_BFu7c_BFu8c)
//============================================================================



static void Test_BFu0c_BFu7c_BFu8i()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu8i");
    static STRUCT_IF_C BFu0c_BFu7c_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "BFu0c_BFu7c_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu7c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu8i, BFu0c_BFu7c_BFu8i)
//============================================================================



static void Test_BFu0c_BFu7c_BFu8ll()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu8ll");
    static STRUCT_IF_C BFu0c_BFu7c_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "BFu0c_BFu7c_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu7c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu8ll, BFu0c_BFu7c_BFu8ll)
//============================================================================



static void Test_BFu0c_BFu7c_BFu8s()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu8s");
    static STRUCT_IF_C BFu0c_BFu7c_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "BFu0c_BFu7c_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "BFu0c_BFu7c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu8s, BFu0c_BFu7c_BFu8s)
//============================================================================



static void Test_BFu0c_BFu7c_BFu9i()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu9i");
    static STRUCT_IF_C BFu0c_BFu7c_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "BFu0c_BFu7c_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu7c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu9i, BFu0c_BFu7c_BFu9i)
//============================================================================



static void Test_BFu0c_BFu7c_BFu9ll()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu9ll");
    static STRUCT_IF_C BFu0c_BFu7c_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "BFu0c_BFu7c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu7c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu9ll, BFu0c_BFu7c_BFu9ll)
//============================================================================



static void Test_BFu0c_BFu7c_BFu9s()
{
  {
    init_simple_test("BFu0c_BFu7c_BFu9s");
    static STRUCT_IF_C BFu0c_BFu7c_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "BFu0c_BFu7c_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "BFu0c_BFu7c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_BFu9s, BFu0c_BFu7c_BFu9s)
//============================================================================



static void Test_BFu0c_BFu7c_C()
{
  {
    init_simple_test("BFu0c_BFu7c_C");
    static STRUCT_IF_C BFu0c_BFu7c_C lv;
    check2(sizeof(lv), 2, "sizeof(BFu0c_BFu7c_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_C");
    check_field_offset(lv, v2, 1, "BFu0c_BFu7c_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_C, BFu0c_BFu7c_C)
//============================================================================



static void Test_BFu0c_BFu7c_D()
{
  {
    init_simple_test("BFu0c_BFu7c_D");
    static STRUCT_IF_C BFu0c_BFu7c_D lv;
    check2(sizeof(lv), 9, "sizeof(BFu0c_BFu7c_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_D");
    check_field_offset(lv, v2, 1, "BFu0c_BFu7c_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_D, BFu0c_BFu7c_D)
//============================================================================



static void Test_BFu0c_BFu7c_F()
{
  {
    init_simple_test("BFu0c_BFu7c_F");
    static STRUCT_IF_C BFu0c_BFu7c_F lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu7c_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_F");
    check_field_offset(lv, v2, 1, "BFu0c_BFu7c_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_F, BFu0c_BFu7c_F)
//============================================================================



static void Test_BFu0c_BFu7c_I()
{
  {
    init_simple_test("BFu0c_BFu7c_I");
    static STRUCT_IF_C BFu0c_BFu7c_I lv;
    check2(sizeof(lv), 5, "sizeof(BFu0c_BFu7c_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_I");
    check_field_offset(lv, v2, 1, "BFu0c_BFu7c_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_I, BFu0c_BFu7c_I)
//============================================================================



static void Test_BFu0c_BFu7c_Ip()
{
  {
    init_simple_test("BFu0c_BFu7c_Ip");
    static STRUCT_IF_C BFu0c_BFu7c_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(BFu0c_BFu7c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu0c_BFu7c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "BFu0c_BFu7c_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "BFu0c_BFu7c_Ip");
    check_field_offset(lv, v2, 1, "BFu0c_BFu7c_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu0c_BFu7c_Ip, BFu0c_BFu7c_Ip)
//============================================================================

