// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// RUN: c_compiler -c -o %t1.o -I "common" "common/testsuite.c"
// RUN: c_compiler -c %s -I "common" -o %t2.o
// RUN: linker -o %t1%exeext  %t1.o %t2.o
// RUN: runtool %t1%exeext | checker "TEST PASSED"
// RUN: cxx_compiler cxx_rtti -c %s -I "common" -o %t2.o
// RUN: linker -o %t2%exeext  %t1.o %t2.o
// RUN: runtool %t2%exeext | checker "TEST PASSED"
#include "testsuite.h"
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu32ll { unsigned long long v1:32; unsigned char v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu33 { unsigned long long v1:32; unsigned char v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu7c { unsigned long long v1:32; unsigned char v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu7i { unsigned long long v1:32; unsigned char v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu7ll { unsigned long long v1:32; unsigned char v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu7s { unsigned long long v1:32; unsigned char v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu8c { unsigned long long v1:32; unsigned char v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu8i { unsigned long long v1:32; unsigned char v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu8ll { unsigned long long v1:32; unsigned char v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu8s { unsigned long long v1:32; unsigned char v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu9i { unsigned long long v1:32; unsigned char v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu9ll { unsigned long long v1:32; unsigned char v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1c_BFu9s { unsigned long long v1:32; unsigned char v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1c_C { unsigned long long v1:32; unsigned char v2:1; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu1c_D { unsigned long long v1:32; unsigned char v2:1; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu1c_F { unsigned long long v1:32; unsigned char v2:1; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu1c_I { unsigned long long v1:32; unsigned char v2:1; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu1c_Ip { unsigned long long v1:32; unsigned char v2:1; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu1c_L { unsigned long long v1:32; unsigned char v2:1; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu1c_S { unsigned long long v1:32; unsigned char v2:1; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu1c_Uc { unsigned long long v1:32; unsigned char v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu1c_Ui { unsigned long long v1:32; unsigned char v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu1c_Ul { unsigned long long v1:32; unsigned char v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu1c_Us { unsigned long long v1:32; unsigned char v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu1c_Vp { unsigned long long v1:32; unsigned char v2:1; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i { unsigned long long v1:32; unsigned int v2:1; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu15i { unsigned long long v1:32; unsigned int v2:1; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu15ll { unsigned long long v1:32; unsigned int v2:1; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu15s { unsigned long long v1:32; unsigned int v2:1; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu16i { unsigned long long v1:32; unsigned int v2:1; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu16ll { unsigned long long v1:32; unsigned int v2:1; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu16s { unsigned long long v1:32; unsigned int v2:1; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu17i { unsigned long long v1:32; unsigned int v2:1; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu17ll { unsigned long long v1:32; unsigned int v2:1; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu1c { unsigned long long v1:32; unsigned int v2:1; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu1i { unsigned long long v1:32; unsigned int v2:1; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu1ll { unsigned long long v1:32; unsigned int v2:1; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu1s { unsigned long long v1:32; unsigned int v2:1; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu31i { unsigned long long v1:32; unsigned int v2:1; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu31ll { unsigned long long v1:32; unsigned int v2:1; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu32i { unsigned long long v1:32; unsigned int v2:1; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu32ll { unsigned long long v1:32; unsigned int v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu33 { unsigned long long v1:32; unsigned int v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu7c { unsigned long long v1:32; unsigned int v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu7i { unsigned long long v1:32; unsigned int v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu7ll { unsigned long long v1:32; unsigned int v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu7s { unsigned long long v1:32; unsigned int v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu8c { unsigned long long v1:32; unsigned int v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu8i { unsigned long long v1:32; unsigned int v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu8ll { unsigned long long v1:32; unsigned int v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu8s { unsigned long long v1:32; unsigned int v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu9i { unsigned long long v1:32; unsigned int v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu9ll { unsigned long long v1:32; unsigned int v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1i_BFu9s { unsigned long long v1:32; unsigned int v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1i_C { unsigned long long v1:32; unsigned int v2:1; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i_D { unsigned long long v1:32; unsigned int v2:1; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i_F { unsigned long long v1:32; unsigned int v2:1; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i_I { unsigned long long v1:32; unsigned int v2:1; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i_Ip { unsigned long long v1:32; unsigned int v2:1; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i_L { unsigned long long v1:32; unsigned int v2:1; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i_S { unsigned long long v1:32; unsigned int v2:1; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i_Uc { unsigned long long v1:32; unsigned int v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i_Ui { unsigned long long v1:32; unsigned int v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i_Ul { unsigned long long v1:32; unsigned int v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i_Us { unsigned long long v1:32; unsigned int v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu1i_Vp { unsigned long long v1:32; unsigned int v2:1; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll { unsigned long long v1:32; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu15i { unsigned long long v1:32; unsigned long long v2:1; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu15ll { unsigned long long v1:32; unsigned long long v2:1; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu15s { unsigned long long v1:32; unsigned long long v2:1; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu16i { unsigned long long v1:32; unsigned long long v2:1; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu16ll { unsigned long long v1:32; unsigned long long v2:1; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu16s { unsigned long long v1:32; unsigned long long v2:1; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu17i { unsigned long long v1:32; unsigned long long v2:1; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu17ll { unsigned long long v1:32; unsigned long long v2:1; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu1c { unsigned long long v1:32; unsigned long long v2:1; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu1i { unsigned long long v1:32; unsigned long long v2:1; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu1ll { unsigned long long v1:32; unsigned long long v2:1; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu1s { unsigned long long v1:32; unsigned long long v2:1; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu31i { unsigned long long v1:32; unsigned long long v2:1; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu31ll { unsigned long long v1:32; unsigned long long v2:1; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu32i { unsigned long long v1:32; unsigned long long v2:1; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu32ll { unsigned long long v1:32; unsigned long long v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu33 { unsigned long long v1:32; unsigned long long v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu7c { unsigned long long v1:32; unsigned long long v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu7i { unsigned long long v1:32; unsigned long long v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu7ll { unsigned long long v1:32; unsigned long long v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu7s { unsigned long long v1:32; unsigned long long v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu8c { unsigned long long v1:32; unsigned long long v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu8i { unsigned long long v1:32; unsigned long long v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu8ll { unsigned long long v1:32; unsigned long long v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu8s { unsigned long long v1:32; unsigned long long v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu9i { unsigned long long v1:32; unsigned long long v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu9ll { unsigned long long v1:32; unsigned long long v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_BFu9s { unsigned long long v1:32; unsigned long long v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_C { unsigned long long v1:32; unsigned long long v2:1; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_D { unsigned long long v1:32; unsigned long long v2:1; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_F { unsigned long long v1:32; unsigned long long v2:1; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_I { unsigned long long v1:32; unsigned long long v2:1; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_Ip { unsigned long long v1:32; unsigned long long v2:1; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_L { unsigned long long v1:32; unsigned long long v2:1; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_S { unsigned long long v1:32; unsigned long long v2:1; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_Uc { unsigned long long v1:32; unsigned long long v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_Ui { unsigned long long v1:32; unsigned long long v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_Ul { unsigned long long v1:32; unsigned long long v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_Us { unsigned long long v1:32; unsigned long long v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu1ll_Vp { unsigned long long v1:32; unsigned long long v2:1; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s { unsigned long long v1:32; unsigned short v2:1; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu15i { unsigned long long v1:32; unsigned short v2:1; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu15ll { unsigned long long v1:32; unsigned short v2:1; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu15s { unsigned long long v1:32; unsigned short v2:1; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu16i { unsigned long long v1:32; unsigned short v2:1; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu16ll { unsigned long long v1:32; unsigned short v2:1; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu16s { unsigned long long v1:32; unsigned short v2:1; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu17i { unsigned long long v1:32; unsigned short v2:1; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu17ll { unsigned long long v1:32; unsigned short v2:1; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu1c { unsigned long long v1:32; unsigned short v2:1; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu1i { unsigned long long v1:32; unsigned short v2:1; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu1ll { unsigned long long v1:32; unsigned short v2:1; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu1s { unsigned long long v1:32; unsigned short v2:1; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu31i { unsigned long long v1:32; unsigned short v2:1; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu31ll { unsigned long long v1:32; unsigned short v2:1; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu32i { unsigned long long v1:32; unsigned short v2:1; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu32ll { unsigned long long v1:32; unsigned short v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu33 { unsigned long long v1:32; unsigned short v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu7c { unsigned long long v1:32; unsigned short v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu7i { unsigned long long v1:32; unsigned short v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu7ll { unsigned long long v1:32; unsigned short v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu7s { unsigned long long v1:32; unsigned short v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu8c { unsigned long long v1:32; unsigned short v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu8i { unsigned long long v1:32; unsigned short v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu8ll { unsigned long long v1:32; unsigned short v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu8s { unsigned long long v1:32; unsigned short v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu9i { unsigned long long v1:32; unsigned short v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu9ll { unsigned long long v1:32; unsigned short v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1s_BFu9s { unsigned long long v1:32; unsigned short v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu1s_C { unsigned long long v1:32; unsigned short v2:1; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s_D { unsigned long long v1:32; unsigned short v2:1; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s_F { unsigned long long v1:32; unsigned short v2:1; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s_I { unsigned long long v1:32; unsigned short v2:1; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s_Ip { unsigned long long v1:32; unsigned short v2:1; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s_L { unsigned long long v1:32; unsigned short v2:1; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s_S { unsigned long long v1:32; unsigned short v2:1; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s_Uc { unsigned long long v1:32; unsigned short v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s_Ui { unsigned long long v1:32; unsigned short v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s_Ul { unsigned long long v1:32; unsigned short v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s_Us { unsigned long long v1:32; unsigned short v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu1s_Vp { unsigned long long v1:32; unsigned short v2:1; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i { unsigned long long v1:32; unsigned int v2:31; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu15i { unsigned long long v1:32; unsigned int v2:31; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu15ll { unsigned long long v1:32; unsigned int v2:31; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu15s { unsigned long long v1:32; unsigned int v2:31; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu16i { unsigned long long v1:32; unsigned int v2:31; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu16ll { unsigned long long v1:32; unsigned int v2:31; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu16s { unsigned long long v1:32; unsigned int v2:31; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu17i { unsigned long long v1:32; unsigned int v2:31; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu17ll { unsigned long long v1:32; unsigned int v2:31; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu1c { unsigned long long v1:32; unsigned int v2:31; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu1i { unsigned long long v1:32; unsigned int v2:31; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu1ll { unsigned long long v1:32; unsigned int v2:31; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu1s { unsigned long long v1:32; unsigned int v2:31; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu31i { unsigned long long v1:32; unsigned int v2:31; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu31ll { unsigned long long v1:32; unsigned int v2:31; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu32i { unsigned long long v1:32; unsigned int v2:31; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu32ll { unsigned long long v1:32; unsigned int v2:31; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu33 { unsigned long long v1:32; unsigned int v2:31; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu7c { unsigned long long v1:32; unsigned int v2:31; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu7i { unsigned long long v1:32; unsigned int v2:31; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu7ll { unsigned long long v1:32; unsigned int v2:31; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu7s { unsigned long long v1:32; unsigned int v2:31; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu8c { unsigned long long v1:32; unsigned int v2:31; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu8i { unsigned long long v1:32; unsigned int v2:31; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu8ll { unsigned long long v1:32; unsigned int v2:31; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu8s { unsigned long long v1:32; unsigned int v2:31; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu9i { unsigned long long v1:32; unsigned int v2:31; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu9ll { unsigned long long v1:32; unsigned int v2:31; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu31i_BFu9s { unsigned long long v1:32; unsigned int v2:31; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu31i_C { unsigned long long v1:32; unsigned int v2:31; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i_D { unsigned long long v1:32; unsigned int v2:31; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i_F { unsigned long long v1:32; unsigned int v2:31; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i_I { unsigned long long v1:32; unsigned int v2:31; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i_Ip { unsigned long long v1:32; unsigned int v2:31; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i_L { unsigned long long v1:32; unsigned int v2:31; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i_S { unsigned long long v1:32; unsigned int v2:31; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i_Uc { unsigned long long v1:32; unsigned int v2:31; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i_Ui { unsigned long long v1:32; unsigned int v2:31; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i_Ul { unsigned long long v1:32; unsigned int v2:31; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i_Us { unsigned long long v1:32; unsigned int v2:31; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu31i_Vp { unsigned long long v1:32; unsigned int v2:31; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll { unsigned long long v1:32; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu15i { unsigned long long v1:32; unsigned long long v2:31; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu15ll { unsigned long long v1:32; unsigned long long v2:31; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu15s { unsigned long long v1:32; unsigned long long v2:31; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu16i { unsigned long long v1:32; unsigned long long v2:31; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu16ll { unsigned long long v1:32; unsigned long long v2:31; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu16s { unsigned long long v1:32; unsigned long long v2:31; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu17i { unsigned long long v1:32; unsigned long long v2:31; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu17ll { unsigned long long v1:32; unsigned long long v2:31; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu1c { unsigned long long v1:32; unsigned long long v2:31; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu1i { unsigned long long v1:32; unsigned long long v2:31; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu1ll { unsigned long long v1:32; unsigned long long v2:31; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu1s { unsigned long long v1:32; unsigned long long v2:31; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu31i { unsigned long long v1:32; unsigned long long v2:31; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu31ll { unsigned long long v1:32; unsigned long long v2:31; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu32i { unsigned long long v1:32; unsigned long long v2:31; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu32ll { unsigned long long v1:32; unsigned long long v2:31; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu33 { unsigned long long v1:32; unsigned long long v2:31; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu7c { unsigned long long v1:32; unsigned long long v2:31; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu7i { unsigned long long v1:32; unsigned long long v2:31; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu7ll { unsigned long long v1:32; unsigned long long v2:31; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu7s { unsigned long long v1:32; unsigned long long v2:31; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu8c { unsigned long long v1:32; unsigned long long v2:31; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu8i { unsigned long long v1:32; unsigned long long v2:31; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu8ll { unsigned long long v1:32; unsigned long long v2:31; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu8s { unsigned long long v1:32; unsigned long long v2:31; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu9i { unsigned long long v1:32; unsigned long long v2:31; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu9ll { unsigned long long v1:32; unsigned long long v2:31; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_BFu9s { unsigned long long v1:32; unsigned long long v2:31; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_C { unsigned long long v1:32; unsigned long long v2:31; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_D { unsigned long long v1:32; unsigned long long v2:31; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_F { unsigned long long v1:32; unsigned long long v2:31; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_I { unsigned long long v1:32; unsigned long long v2:31; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_Ip { unsigned long long v1:32; unsigned long long v2:31; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_L { unsigned long long v1:32; unsigned long long v2:31; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_S { unsigned long long v1:32; unsigned long long v2:31; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_Uc { unsigned long long v1:32; unsigned long long v2:31; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_Ui { unsigned long long v1:32; unsigned long long v2:31; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_Ul { unsigned long long v1:32; unsigned long long v2:31; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_Us { unsigned long long v1:32; unsigned long long v2:31; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu31ll_Vp { unsigned long long v1:32; unsigned long long v2:31; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i { unsigned long long v1:32; unsigned int v2:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFs32i { unsigned long long v1:32; unsigned int v2:32; signed int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFs32i_BFs32i { unsigned long long v1:32; unsigned int v2:32; signed int v3:32; signed int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFs32i_BFs32ll { unsigned long long v1:32; unsigned int v2:32; signed int v3:32; signed long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFs32i_BFu32i { unsigned long long v1:32; unsigned int v2:32; signed int v3:32; unsigned int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFs32i_BFu32ll { unsigned long long v1:32; unsigned int v2:32; signed int v3:32; unsigned long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFs32ll { unsigned long long v1:32; unsigned int v2:32; signed long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFs32ll_BFs32i { unsigned long long v1:32; unsigned int v2:32; signed long long v3:32; signed int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFs32ll_BFs32ll { unsigned long long v1:32; unsigned int v2:32; signed long long v3:32; signed long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFs32ll_BFu32i { unsigned long long v1:32; unsigned int v2:32; signed long long v3:32; unsigned int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFs32ll_BFu32ll { unsigned long long v1:32; unsigned int v2:32; signed long long v3:32; unsigned long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu15i { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu15ll { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu15s { unsigned long long v1:32; unsigned int v2:32; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu16i { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu16ll { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu16s { unsigned long long v1:32; unsigned int v2:32; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu17i { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu17ll { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu1c { unsigned long long v1:32; unsigned int v2:32; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu1i { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu1ll { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu1s { unsigned long long v1:32; unsigned int v2:32; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu31i { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu31ll { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu32i { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu32i_BFs32i { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:32; signed int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu32i_BFs32ll { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:32; signed long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu32i_BFu32i { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:32; unsigned int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu32i_BFu32ll { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:32; unsigned long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu32ll { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu32ll_BFs32i { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:32; signed int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu32ll_BFs32ll { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:32; signed long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu32ll_BFu32i { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:32; unsigned int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu32ll_BFu32ll { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:32; unsigned long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu33 { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu7c { unsigned long long v1:32; unsigned int v2:32; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu7i { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu7ll { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu7s { unsigned long long v1:32; unsigned int v2:32; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu8c { unsigned long long v1:32; unsigned int v2:32; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu8i { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu8ll { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu8s { unsigned long long v1:32; unsigned int v2:32; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu9i { unsigned long long v1:32; unsigned int v2:32; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu9ll { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu32i_BFu9s { unsigned long long v1:32; unsigned int v2:32; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu32i_C { unsigned long long v1:32; unsigned int v2:32; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i_D { unsigned long long v1:32; unsigned int v2:32; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i_F { unsigned long long v1:32; unsigned int v2:32; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i_I { unsigned long long v1:32; unsigned int v2:32; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i_Ip { unsigned long long v1:32; unsigned int v2:32; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i_L { unsigned long long v1:32; unsigned int v2:32; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i_S { unsigned long long v1:32; unsigned int v2:32; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i_Uc { unsigned long long v1:32; unsigned int v2:32; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i_Ui { unsigned long long v1:32; unsigned int v2:32; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i_Ul { unsigned long long v1:32; unsigned int v2:32; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i_Us { unsigned long long v1:32; unsigned int v2:32; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu32i_Vp { unsigned long long v1:32; unsigned int v2:32; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll { unsigned long long v1:32; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFs32i { unsigned long long v1:32; unsigned long long v2:32; signed int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFs32i_BFs32i { unsigned long long v1:32; unsigned long long v2:32; signed int v3:32; signed int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFs32i_BFs32ll { unsigned long long v1:32; unsigned long long v2:32; signed int v3:32; signed long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFs32i_BFu32i { unsigned long long v1:32; unsigned long long v2:32; signed int v3:32; unsigned int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFs32i_BFu32ll { unsigned long long v1:32; unsigned long long v2:32; signed int v3:32; unsigned long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFs32ll { unsigned long long v1:32; unsigned long long v2:32; signed long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFs32ll_BFs32i { unsigned long long v1:32; unsigned long long v2:32; signed long long v3:32; signed int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFs32ll_BFs32ll { unsigned long long v1:32; unsigned long long v2:32; signed long long v3:32; signed long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFs32ll_BFu32i { unsigned long long v1:32; unsigned long long v2:32; signed long long v3:32; unsigned int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFs32ll_BFu32ll { unsigned long long v1:32; unsigned long long v2:32; signed long long v3:32; unsigned long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu15i { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu15ll { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu15s { unsigned long long v1:32; unsigned long long v2:32; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu16i { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu16ll { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu16s { unsigned long long v1:32; unsigned long long v2:32; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu17i { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu17ll { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu1c { unsigned long long v1:32; unsigned long long v2:32; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu1i { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu1ll { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu1s { unsigned long long v1:32; unsigned long long v2:32; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu31i { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu31ll { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu32i { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu32i_BFs32i { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:32; signed int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu32i_BFs32ll { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:32; signed long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu32i_BFu32i { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:32; unsigned int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu32i_BFu32ll { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:32; unsigned long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu32ll { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu32ll_BFs32i { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:32; signed int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu32ll_BFs32ll { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:32; signed long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu32ll_BFu32i { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:32; unsigned int v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu32ll_BFu32ll { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:32; unsigned long long v4:32; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu33 { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu7c { unsigned long long v1:32; unsigned long long v2:32; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu7i { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu7ll { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu7s { unsigned long long v1:32; unsigned long long v2:32; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu8c { unsigned long long v1:32; unsigned long long v2:32; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu8i { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu8ll { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu8s { unsigned long long v1:32; unsigned long long v2:32; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu9i { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu9ll { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_BFu9s { unsigned long long v1:32; unsigned long long v2:32; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_C { unsigned long long v1:32; unsigned long long v2:32; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_D { unsigned long long v1:32; unsigned long long v2:32; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_F { unsigned long long v1:32; unsigned long long v2:32; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_I { unsigned long long v1:32; unsigned long long v2:32; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_Ip { unsigned long long v1:32; unsigned long long v2:32; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_L { unsigned long long v1:32; unsigned long long v2:32; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_S { unsigned long long v1:32; unsigned long long v2:32; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_Uc { unsigned long long v1:32; unsigned long long v2:32; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_Ui { unsigned long long v1:32; unsigned long long v2:32; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_Ul { unsigned long long v1:32; unsigned long long v2:32; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_Us { unsigned long long v1:32; unsigned long long v2:32; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu32ll_Vp { unsigned long long v1:32; unsigned long long v2:32; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu33 { unsigned long long v1:32; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu15i { unsigned long long v1:32; unsigned long long v2:33; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu15ll { unsigned long long v1:32; unsigned long long v2:33; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu15s { unsigned long long v1:32; unsigned long long v2:33; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu16i { unsigned long long v1:32; unsigned long long v2:33; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu16ll { unsigned long long v1:32; unsigned long long v2:33; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu16s { unsigned long long v1:32; unsigned long long v2:33; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu17i { unsigned long long v1:32; unsigned long long v2:33; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu17ll { unsigned long long v1:32; unsigned long long v2:33; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu1c { unsigned long long v1:32; unsigned long long v2:33; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu1i { unsigned long long v1:32; unsigned long long v2:33; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu1ll { unsigned long long v1:32; unsigned long long v2:33; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu1s { unsigned long long v1:32; unsigned long long v2:33; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu31i { unsigned long long v1:32; unsigned long long v2:33; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu31ll { unsigned long long v1:32; unsigned long long v2:33; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu32i { unsigned long long v1:32; unsigned long long v2:33; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu32ll { unsigned long long v1:32; unsigned long long v2:33; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu33 { unsigned long long v1:32; unsigned long long v2:33; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu7c { unsigned long long v1:32; unsigned long long v2:33; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu7i { unsigned long long v1:32; unsigned long long v2:33; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu7ll { unsigned long long v1:32; unsigned long long v2:33; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu7s { unsigned long long v1:32; unsigned long long v2:33; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu8c { unsigned long long v1:32; unsigned long long v2:33; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu8i { unsigned long long v1:32; unsigned long long v2:33; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu8ll { unsigned long long v1:32; unsigned long long v2:33; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu8s { unsigned long long v1:32; unsigned long long v2:33; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu9i { unsigned long long v1:32; unsigned long long v2:33; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu9ll { unsigned long long v1:32; unsigned long long v2:33; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu33_BFu9s { unsigned long long v1:32; unsigned long long v2:33; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu33_C { unsigned long long v1:32; unsigned long long v2:33; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu33_D { unsigned long long v1:32; unsigned long long v2:33; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu33_F { unsigned long long v1:32; unsigned long long v2:33; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu33_I { unsigned long long v1:32; unsigned long long v2:33; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu33_Ip { unsigned long long v1:32; unsigned long long v2:33; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu33_L { unsigned long long v1:32; unsigned long long v2:33; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu33_S { unsigned long long v1:32; unsigned long long v2:33; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu33_Uc { unsigned long long v1:32; unsigned long long v2:33; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu33_Ui { unsigned long long v1:32; unsigned long long v2:33; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu33_Ul { unsigned long long v1:32; unsigned long long v2:33; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu33_Us { unsigned long long v1:32; unsigned long long v2:33; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu33_Vp { unsigned long long v1:32; unsigned long long v2:33; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c { unsigned long long v1:32; unsigned char v2:7; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu15i { unsigned long long v1:32; unsigned char v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu15ll { unsigned long long v1:32; unsigned char v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu15s { unsigned long long v1:32; unsigned char v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu16i { unsigned long long v1:32; unsigned char v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu16ll { unsigned long long v1:32; unsigned char v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu16s { unsigned long long v1:32; unsigned char v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu17i { unsigned long long v1:32; unsigned char v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu17ll { unsigned long long v1:32; unsigned char v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu1c { unsigned long long v1:32; unsigned char v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu1i { unsigned long long v1:32; unsigned char v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu1ll { unsigned long long v1:32; unsigned char v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu1s { unsigned long long v1:32; unsigned char v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu31i { unsigned long long v1:32; unsigned char v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu31ll { unsigned long long v1:32; unsigned char v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu32i { unsigned long long v1:32; unsigned char v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu32ll { unsigned long long v1:32; unsigned char v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu33 { unsigned long long v1:32; unsigned char v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu7c { unsigned long long v1:32; unsigned char v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu7i { unsigned long long v1:32; unsigned char v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu7ll { unsigned long long v1:32; unsigned char v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu7s { unsigned long long v1:32; unsigned char v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu8c { unsigned long long v1:32; unsigned char v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu8i { unsigned long long v1:32; unsigned char v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu8ll { unsigned long long v1:32; unsigned char v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu8s { unsigned long long v1:32; unsigned char v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu9i { unsigned long long v1:32; unsigned char v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu9ll { unsigned long long v1:32; unsigned char v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7c_BFu9s { unsigned long long v1:32; unsigned char v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7c_C { unsigned long long v1:32; unsigned char v2:7; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c_D { unsigned long long v1:32; unsigned char v2:7; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c_F { unsigned long long v1:32; unsigned char v2:7; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c_I { unsigned long long v1:32; unsigned char v2:7; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c_Ip { unsigned long long v1:32; unsigned char v2:7; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c_L { unsigned long long v1:32; unsigned char v2:7; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c_S { unsigned long long v1:32; unsigned char v2:7; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c_Uc { unsigned long long v1:32; unsigned char v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c_Ui { unsigned long long v1:32; unsigned char v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c_Ul { unsigned long long v1:32; unsigned char v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c_Us { unsigned long long v1:32; unsigned char v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu7c_Vp { unsigned long long v1:32; unsigned char v2:7; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i { unsigned long long v1:32; unsigned int v2:7; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu15i { unsigned long long v1:32; unsigned int v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu15ll { unsigned long long v1:32; unsigned int v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu15s { unsigned long long v1:32; unsigned int v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu16i { unsigned long long v1:32; unsigned int v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu16ll { unsigned long long v1:32; unsigned int v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu16s { unsigned long long v1:32; unsigned int v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu17i { unsigned long long v1:32; unsigned int v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu17ll { unsigned long long v1:32; unsigned int v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu1c { unsigned long long v1:32; unsigned int v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu1i { unsigned long long v1:32; unsigned int v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu1ll { unsigned long long v1:32; unsigned int v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu1s { unsigned long long v1:32; unsigned int v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu31i { unsigned long long v1:32; unsigned int v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu31ll { unsigned long long v1:32; unsigned int v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu32i { unsigned long long v1:32; unsigned int v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu32ll { unsigned long long v1:32; unsigned int v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu33 { unsigned long long v1:32; unsigned int v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu7c { unsigned long long v1:32; unsigned int v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu7i { unsigned long long v1:32; unsigned int v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu7ll { unsigned long long v1:32; unsigned int v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu7s { unsigned long long v1:32; unsigned int v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu8c { unsigned long long v1:32; unsigned int v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu8i { unsigned long long v1:32; unsigned int v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu8ll { unsigned long long v1:32; unsigned int v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu8s { unsigned long long v1:32; unsigned int v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu9i { unsigned long long v1:32; unsigned int v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu9ll { unsigned long long v1:32; unsigned int v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7i_BFu9s { unsigned long long v1:32; unsigned int v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7i_C { unsigned long long v1:32; unsigned int v2:7; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i_D { unsigned long long v1:32; unsigned int v2:7; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i_F { unsigned long long v1:32; unsigned int v2:7; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i_I { unsigned long long v1:32; unsigned int v2:7; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i_Ip { unsigned long long v1:32; unsigned int v2:7; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i_L { unsigned long long v1:32; unsigned int v2:7; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i_S { unsigned long long v1:32; unsigned int v2:7; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i_Uc { unsigned long long v1:32; unsigned int v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i_Ui { unsigned long long v1:32; unsigned int v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i_Ul { unsigned long long v1:32; unsigned int v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i_Us { unsigned long long v1:32; unsigned int v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu7i_Vp { unsigned long long v1:32; unsigned int v2:7; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll { unsigned long long v1:32; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu15i { unsigned long long v1:32; unsigned long long v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu15ll { unsigned long long v1:32; unsigned long long v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu15s { unsigned long long v1:32; unsigned long long v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu16i { unsigned long long v1:32; unsigned long long v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu16ll { unsigned long long v1:32; unsigned long long v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu16s { unsigned long long v1:32; unsigned long long v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu17i { unsigned long long v1:32; unsigned long long v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu17ll { unsigned long long v1:32; unsigned long long v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu1c { unsigned long long v1:32; unsigned long long v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu1i { unsigned long long v1:32; unsigned long long v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu1ll { unsigned long long v1:32; unsigned long long v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu1s { unsigned long long v1:32; unsigned long long v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu31i { unsigned long long v1:32; unsigned long long v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu31ll { unsigned long long v1:32; unsigned long long v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu32i { unsigned long long v1:32; unsigned long long v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu32ll { unsigned long long v1:32; unsigned long long v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu33 { unsigned long long v1:32; unsigned long long v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu7c { unsigned long long v1:32; unsigned long long v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu7i { unsigned long long v1:32; unsigned long long v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu7ll { unsigned long long v1:32; unsigned long long v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu7s { unsigned long long v1:32; unsigned long long v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu8c { unsigned long long v1:32; unsigned long long v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu8i { unsigned long long v1:32; unsigned long long v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu8ll { unsigned long long v1:32; unsigned long long v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu8s { unsigned long long v1:32; unsigned long long v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu9i { unsigned long long v1:32; unsigned long long v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu9ll { unsigned long long v1:32; unsigned long long v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_BFu9s { unsigned long long v1:32; unsigned long long v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_C { unsigned long long v1:32; unsigned long long v2:7; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_D { unsigned long long v1:32; unsigned long long v2:7; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_F { unsigned long long v1:32; unsigned long long v2:7; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_I { unsigned long long v1:32; unsigned long long v2:7; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_Ip { unsigned long long v1:32; unsigned long long v2:7; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_L { unsigned long long v1:32; unsigned long long v2:7; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_S { unsigned long long v1:32; unsigned long long v2:7; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_Uc { unsigned long long v1:32; unsigned long long v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_Ui { unsigned long long v1:32; unsigned long long v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_Ul { unsigned long long v1:32; unsigned long long v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_Us { unsigned long long v1:32; unsigned long long v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu7ll_Vp { unsigned long long v1:32; unsigned long long v2:7; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s { unsigned long long v1:32; unsigned short v2:7; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu15i { unsigned long long v1:32; unsigned short v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu15ll { unsigned long long v1:32; unsigned short v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu15s { unsigned long long v1:32; unsigned short v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu16i { unsigned long long v1:32; unsigned short v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu16ll { unsigned long long v1:32; unsigned short v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu16s { unsigned long long v1:32; unsigned short v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu17i { unsigned long long v1:32; unsigned short v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu17ll { unsigned long long v1:32; unsigned short v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu1c { unsigned long long v1:32; unsigned short v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu1i { unsigned long long v1:32; unsigned short v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu1ll { unsigned long long v1:32; unsigned short v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu1s { unsigned long long v1:32; unsigned short v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu31i { unsigned long long v1:32; unsigned short v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu31ll { unsigned long long v1:32; unsigned short v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu32i { unsigned long long v1:32; unsigned short v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu32ll { unsigned long long v1:32; unsigned short v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu33 { unsigned long long v1:32; unsigned short v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu7c { unsigned long long v1:32; unsigned short v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu7i { unsigned long long v1:32; unsigned short v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu7ll { unsigned long long v1:32; unsigned short v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu7s { unsigned long long v1:32; unsigned short v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu8c { unsigned long long v1:32; unsigned short v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu8i { unsigned long long v1:32; unsigned short v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu8ll { unsigned long long v1:32; unsigned short v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu8s { unsigned long long v1:32; unsigned short v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu9i { unsigned long long v1:32; unsigned short v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu9ll { unsigned long long v1:32; unsigned short v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7s_BFu9s { unsigned long long v1:32; unsigned short v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu7s_C { unsigned long long v1:32; unsigned short v2:7; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s_D { unsigned long long v1:32; unsigned short v2:7; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s_F { unsigned long long v1:32; unsigned short v2:7; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s_I { unsigned long long v1:32; unsigned short v2:7; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s_Ip { unsigned long long v1:32; unsigned short v2:7; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s_L { unsigned long long v1:32; unsigned short v2:7; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s_S { unsigned long long v1:32; unsigned short v2:7; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s_Uc { unsigned long long v1:32; unsigned short v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s_Ui { unsigned long long v1:32; unsigned short v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s_Ul { unsigned long long v1:32; unsigned short v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s_Us { unsigned long long v1:32; unsigned short v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu7s_Vp { unsigned long long v1:32; unsigned short v2:7; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c { unsigned long long v1:32; unsigned char v2:8; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu15i { unsigned long long v1:32; unsigned char v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu15ll { unsigned long long v1:32; unsigned char v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu15s { unsigned long long v1:32; unsigned char v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu16i { unsigned long long v1:32; unsigned char v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu16ll { unsigned long long v1:32; unsigned char v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu16s { unsigned long long v1:32; unsigned char v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu17i { unsigned long long v1:32; unsigned char v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu17ll { unsigned long long v1:32; unsigned char v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu1c { unsigned long long v1:32; unsigned char v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu1i { unsigned long long v1:32; unsigned char v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu1ll { unsigned long long v1:32; unsigned char v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu1s { unsigned long long v1:32; unsigned char v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu31i { unsigned long long v1:32; unsigned char v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu31ll { unsigned long long v1:32; unsigned char v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu32i { unsigned long long v1:32; unsigned char v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu32ll { unsigned long long v1:32; unsigned char v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu33 { unsigned long long v1:32; unsigned char v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu7c { unsigned long long v1:32; unsigned char v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu7i { unsigned long long v1:32; unsigned char v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu7ll { unsigned long long v1:32; unsigned char v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu7s { unsigned long long v1:32; unsigned char v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu8c { unsigned long long v1:32; unsigned char v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu8i { unsigned long long v1:32; unsigned char v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu8ll { unsigned long long v1:32; unsigned char v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu8s { unsigned long long v1:32; unsigned char v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu9i { unsigned long long v1:32; unsigned char v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu9ll { unsigned long long v1:32; unsigned char v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8c_BFu9s { unsigned long long v1:32; unsigned char v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8c_C { unsigned long long v1:32; unsigned char v2:8; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c_D { unsigned long long v1:32; unsigned char v2:8; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c_F { unsigned long long v1:32; unsigned char v2:8; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c_I { unsigned long long v1:32; unsigned char v2:8; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c_Ip { unsigned long long v1:32; unsigned char v2:8; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c_L { unsigned long long v1:32; unsigned char v2:8; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c_S { unsigned long long v1:32; unsigned char v2:8; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c_Uc { unsigned long long v1:32; unsigned char v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c_Ui { unsigned long long v1:32; unsigned char v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c_Ul { unsigned long long v1:32; unsigned char v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c_Us { unsigned long long v1:32; unsigned char v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu8c_Vp { unsigned long long v1:32; unsigned char v2:8; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i { unsigned long long v1:32; unsigned int v2:8; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu15i { unsigned long long v1:32; unsigned int v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu15ll { unsigned long long v1:32; unsigned int v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu15s { unsigned long long v1:32; unsigned int v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu16i { unsigned long long v1:32; unsigned int v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu16ll { unsigned long long v1:32; unsigned int v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu16s { unsigned long long v1:32; unsigned int v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu17i { unsigned long long v1:32; unsigned int v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu17ll { unsigned long long v1:32; unsigned int v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu1c { unsigned long long v1:32; unsigned int v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu1i { unsigned long long v1:32; unsigned int v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu1ll { unsigned long long v1:32; unsigned int v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu1s { unsigned long long v1:32; unsigned int v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu31i { unsigned long long v1:32; unsigned int v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu31ll { unsigned long long v1:32; unsigned int v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu32i { unsigned long long v1:32; unsigned int v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu32ll { unsigned long long v1:32; unsigned int v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu33 { unsigned long long v1:32; unsigned int v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu7c { unsigned long long v1:32; unsigned int v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu7i { unsigned long long v1:32; unsigned int v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu7ll { unsigned long long v1:32; unsigned int v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu7s { unsigned long long v1:32; unsigned int v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu8c { unsigned long long v1:32; unsigned int v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu8i { unsigned long long v1:32; unsigned int v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu8ll { unsigned long long v1:32; unsigned int v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu8s { unsigned long long v1:32; unsigned int v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu9i { unsigned long long v1:32; unsigned int v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu9ll { unsigned long long v1:32; unsigned int v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8i_BFu9s { unsigned long long v1:32; unsigned int v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8i_C { unsigned long long v1:32; unsigned int v2:8; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i_D { unsigned long long v1:32; unsigned int v2:8; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i_F { unsigned long long v1:32; unsigned int v2:8; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i_I { unsigned long long v1:32; unsigned int v2:8; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i_Ip { unsigned long long v1:32; unsigned int v2:8; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i_L { unsigned long long v1:32; unsigned int v2:8; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i_S { unsigned long long v1:32; unsigned int v2:8; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i_Uc { unsigned long long v1:32; unsigned int v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i_Ui { unsigned long long v1:32; unsigned int v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i_Ul { unsigned long long v1:32; unsigned int v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i_Us { unsigned long long v1:32; unsigned int v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu8i_Vp { unsigned long long v1:32; unsigned int v2:8; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll { unsigned long long v1:32; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu15i { unsigned long long v1:32; unsigned long long v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu15ll { unsigned long long v1:32; unsigned long long v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu15s { unsigned long long v1:32; unsigned long long v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu16i { unsigned long long v1:32; unsigned long long v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu16ll { unsigned long long v1:32; unsigned long long v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu16s { unsigned long long v1:32; unsigned long long v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu17i { unsigned long long v1:32; unsigned long long v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu17ll { unsigned long long v1:32; unsigned long long v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu1c { unsigned long long v1:32; unsigned long long v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu1i { unsigned long long v1:32; unsigned long long v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu1ll { unsigned long long v1:32; unsigned long long v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu1s { unsigned long long v1:32; unsigned long long v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu31i { unsigned long long v1:32; unsigned long long v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu31ll { unsigned long long v1:32; unsigned long long v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu32i { unsigned long long v1:32; unsigned long long v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu32ll { unsigned long long v1:32; unsigned long long v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu33 { unsigned long long v1:32; unsigned long long v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu7c { unsigned long long v1:32; unsigned long long v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu7i { unsigned long long v1:32; unsigned long long v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu7ll { unsigned long long v1:32; unsigned long long v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu7s { unsigned long long v1:32; unsigned long long v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu8c { unsigned long long v1:32; unsigned long long v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu8i { unsigned long long v1:32; unsigned long long v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu8ll { unsigned long long v1:32; unsigned long long v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu8s { unsigned long long v1:32; unsigned long long v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu9i { unsigned long long v1:32; unsigned long long v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu9ll { unsigned long long v1:32; unsigned long long v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_BFu9s { unsigned long long v1:32; unsigned long long v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_C { unsigned long long v1:32; unsigned long long v2:8; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_D { unsigned long long v1:32; unsigned long long v2:8; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_F { unsigned long long v1:32; unsigned long long v2:8; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_I { unsigned long long v1:32; unsigned long long v2:8; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_Ip { unsigned long long v1:32; unsigned long long v2:8; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_L { unsigned long long v1:32; unsigned long long v2:8; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_S { unsigned long long v1:32; unsigned long long v2:8; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_Uc { unsigned long long v1:32; unsigned long long v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_Ui { unsigned long long v1:32; unsigned long long v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_Ul { unsigned long long v1:32; unsigned long long v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_Us { unsigned long long v1:32; unsigned long long v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu8ll_Vp { unsigned long long v1:32; unsigned long long v2:8; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s { unsigned long long v1:32; unsigned short v2:8; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu15i { unsigned long long v1:32; unsigned short v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu15ll { unsigned long long v1:32; unsigned short v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu15s { unsigned long long v1:32; unsigned short v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu16i { unsigned long long v1:32; unsigned short v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu16ll { unsigned long long v1:32; unsigned short v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu16s { unsigned long long v1:32; unsigned short v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu17i { unsigned long long v1:32; unsigned short v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu17ll { unsigned long long v1:32; unsigned short v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu1c { unsigned long long v1:32; unsigned short v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu1i { unsigned long long v1:32; unsigned short v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu1ll { unsigned long long v1:32; unsigned short v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu1s { unsigned long long v1:32; unsigned short v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu31i { unsigned long long v1:32; unsigned short v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu31ll { unsigned long long v1:32; unsigned short v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu32i { unsigned long long v1:32; unsigned short v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu32ll { unsigned long long v1:32; unsigned short v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu33 { unsigned long long v1:32; unsigned short v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu7c { unsigned long long v1:32; unsigned short v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu7i { unsigned long long v1:32; unsigned short v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu7ll { unsigned long long v1:32; unsigned short v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu7s { unsigned long long v1:32; unsigned short v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu8c { unsigned long long v1:32; unsigned short v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu8i { unsigned long long v1:32; unsigned short v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu8ll { unsigned long long v1:32; unsigned short v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu8s { unsigned long long v1:32; unsigned short v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu9i { unsigned long long v1:32; unsigned short v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu9ll { unsigned long long v1:32; unsigned short v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8s_BFu9s { unsigned long long v1:32; unsigned short v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu8s_C { unsigned long long v1:32; unsigned short v2:8; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s_D { unsigned long long v1:32; unsigned short v2:8; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s_F { unsigned long long v1:32; unsigned short v2:8; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s_I { unsigned long long v1:32; unsigned short v2:8; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s_Ip { unsigned long long v1:32; unsigned short v2:8; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s_L { unsigned long long v1:32; unsigned short v2:8; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s_S { unsigned long long v1:32; unsigned short v2:8; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s_Uc { unsigned long long v1:32; unsigned short v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s_Ui { unsigned long long v1:32; unsigned short v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s_Ul { unsigned long long v1:32; unsigned short v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s_Us { unsigned long long v1:32; unsigned short v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu8s_Vp { unsigned long long v1:32; unsigned short v2:8; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i { unsigned long long v1:32; unsigned int v2:9; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu15i { unsigned long long v1:32; unsigned int v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu15ll { unsigned long long v1:32; unsigned int v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu15s { unsigned long long v1:32; unsigned int v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu16i { unsigned long long v1:32; unsigned int v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu16ll { unsigned long long v1:32; unsigned int v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu16s { unsigned long long v1:32; unsigned int v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu17i { unsigned long long v1:32; unsigned int v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu17ll { unsigned long long v1:32; unsigned int v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu1c { unsigned long long v1:32; unsigned int v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu1i { unsigned long long v1:32; unsigned int v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu1ll { unsigned long long v1:32; unsigned int v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu1s { unsigned long long v1:32; unsigned int v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu31i { unsigned long long v1:32; unsigned int v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu31ll { unsigned long long v1:32; unsigned int v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu32i { unsigned long long v1:32; unsigned int v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu32ll { unsigned long long v1:32; unsigned int v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu33 { unsigned long long v1:32; unsigned int v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu7c { unsigned long long v1:32; unsigned int v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu7i { unsigned long long v1:32; unsigned int v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu7ll { unsigned long long v1:32; unsigned int v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu7s { unsigned long long v1:32; unsigned int v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu8c { unsigned long long v1:32; unsigned int v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu8i { unsigned long long v1:32; unsigned int v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu8ll { unsigned long long v1:32; unsigned int v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu8s { unsigned long long v1:32; unsigned int v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu9i { unsigned long long v1:32; unsigned int v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu9ll { unsigned long long v1:32; unsigned int v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu9i_BFu9s { unsigned long long v1:32; unsigned int v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu9i_C { unsigned long long v1:32; unsigned int v2:9; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i_D { unsigned long long v1:32; unsigned int v2:9; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i_F { unsigned long long v1:32; unsigned int v2:9; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i_I { unsigned long long v1:32; unsigned int v2:9; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i_Ip { unsigned long long v1:32; unsigned int v2:9; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i_L { unsigned long long v1:32; unsigned int v2:9; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i_S { unsigned long long v1:32; unsigned int v2:9; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i_Uc { unsigned long long v1:32; unsigned int v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i_Ui { unsigned long long v1:32; unsigned int v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i_Ul { unsigned long long v1:32; unsigned int v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i_Us { unsigned long long v1:32; unsigned int v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu9i_Vp { unsigned long long v1:32; unsigned int v2:9; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll { unsigned long long v1:32; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu15i { unsigned long long v1:32; unsigned long long v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu15ll { unsigned long long v1:32; unsigned long long v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu15s { unsigned long long v1:32; unsigned long long v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu16i { unsigned long long v1:32; unsigned long long v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu16ll { unsigned long long v1:32; unsigned long long v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu16s { unsigned long long v1:32; unsigned long long v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu17i { unsigned long long v1:32; unsigned long long v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu17ll { unsigned long long v1:32; unsigned long long v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu1c { unsigned long long v1:32; unsigned long long v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu1i { unsigned long long v1:32; unsigned long long v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu1ll { unsigned long long v1:32; unsigned long long v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu1s { unsigned long long v1:32; unsigned long long v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu31i { unsigned long long v1:32; unsigned long long v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu31ll { unsigned long long v1:32; unsigned long long v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu32i { unsigned long long v1:32; unsigned long long v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu32ll { unsigned long long v1:32; unsigned long long v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu33 { unsigned long long v1:32; unsigned long long v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu7c { unsigned long long v1:32; unsigned long long v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu7i { unsigned long long v1:32; unsigned long long v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu7ll { unsigned long long v1:32; unsigned long long v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu7s { unsigned long long v1:32; unsigned long long v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu8c { unsigned long long v1:32; unsigned long long v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu8i { unsigned long long v1:32; unsigned long long v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu8ll { unsigned long long v1:32; unsigned long long v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu8s { unsigned long long v1:32; unsigned long long v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu9i { unsigned long long v1:32; unsigned long long v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu9ll { unsigned long long v1:32; unsigned long long v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_BFu9s { unsigned long long v1:32; unsigned long long v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_C { unsigned long long v1:32; unsigned long long v2:9; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_D { unsigned long long v1:32; unsigned long long v2:9; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_F { unsigned long long v1:32; unsigned long long v2:9; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_I { unsigned long long v1:32; unsigned long long v2:9; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_Ip { unsigned long long v1:32; unsigned long long v2:9; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_L { unsigned long long v1:32; unsigned long long v2:9; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_S { unsigned long long v1:32; unsigned long long v2:9; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_Uc { unsigned long long v1:32; unsigned long long v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_Ui { unsigned long long v1:32; unsigned long long v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_Ul { unsigned long long v1:32; unsigned long long v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_Us { unsigned long long v1:32; unsigned long long v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu9ll_Vp { unsigned long long v1:32; unsigned long long v2:9; void * v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s { unsigned long long v1:32; unsigned short v2:9; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu15i { unsigned long long v1:32; unsigned short v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu15ll { unsigned long long v1:32; unsigned short v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu15s { unsigned long long v1:32; unsigned short v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu16i { unsigned long long v1:32; unsigned short v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu16ll { unsigned long long v1:32; unsigned short v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu16s { unsigned long long v1:32; unsigned short v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu17i { unsigned long long v1:32; unsigned short v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu17ll { unsigned long long v1:32; unsigned short v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu1c { unsigned long long v1:32; unsigned short v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu1i { unsigned long long v1:32; unsigned short v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu1ll { unsigned long long v1:32; unsigned short v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu1s { unsigned long long v1:32; unsigned short v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu31i { unsigned long long v1:32; unsigned short v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu31ll { unsigned long long v1:32; unsigned short v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu32i { unsigned long long v1:32; unsigned short v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu32ll { unsigned long long v1:32; unsigned short v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu33 { unsigned long long v1:32; unsigned short v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu7c { unsigned long long v1:32; unsigned short v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu7i { unsigned long long v1:32; unsigned short v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu7ll { unsigned long long v1:32; unsigned short v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu7s { unsigned long long v1:32; unsigned short v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu8c { unsigned long long v1:32; unsigned short v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu8i { unsigned long long v1:32; unsigned short v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu8ll { unsigned long long v1:32; unsigned short v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu8s { unsigned long long v1:32; unsigned short v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu9i { unsigned long long v1:32; unsigned short v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu9ll { unsigned long long v1:32; unsigned short v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu9s_BFu9s { unsigned long long v1:32; unsigned short v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_BFu9s_C { unsigned long long v1:32; unsigned short v2:9; char v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s_D { unsigned long long v1:32; unsigned short v2:9; double v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s_F { unsigned long long v1:32; unsigned short v2:9; float v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s_I { unsigned long long v1:32; unsigned short v2:9; int v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s_Ip { unsigned long long v1:32; unsigned short v2:9; int * v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s_L { unsigned long long v1:32; unsigned short v2:9; long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s_S { unsigned long long v1:32; unsigned short v2:9; short v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s_Uc { unsigned long long v1:32; unsigned short v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s_Ui { unsigned long long v1:32; unsigned short v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s_Ul { unsigned long long v1:32; unsigned short v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s_Us { unsigned long long v1:32; unsigned short v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_BFu9s_Vp { unsigned long long v1:32; unsigned short v2:9; void * v3; };
struct __attribute__((packed)) aBFu32ll_C { unsigned long long v1:32; char v2; };
struct __attribute__((packed)) aBFu32ll_C_BFu15i { unsigned long long v1:32; char v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_C_BFu15ll { unsigned long long v1:32; char v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_C_BFu15s { unsigned long long v1:32; char v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_C_BFu16i { unsigned long long v1:32; char v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_C_BFu16ll { unsigned long long v1:32; char v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_C_BFu16s { unsigned long long v1:32; char v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_C_BFu17i { unsigned long long v1:32; char v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_C_BFu17ll { unsigned long long v1:32; char v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_C_BFu1c { unsigned long long v1:32; char v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_C_BFu1i { unsigned long long v1:32; char v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_C_BFu1ll { unsigned long long v1:32; char v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_C_BFu1s { unsigned long long v1:32; char v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_C_BFu31i { unsigned long long v1:32; char v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_C_BFu31ll { unsigned long long v1:32; char v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_C_BFu32i { unsigned long long v1:32; char v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_C_BFu32ll { unsigned long long v1:32; char v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_C_BFu33 { unsigned long long v1:32; char v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_C_BFu7c { unsigned long long v1:32; char v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_C_BFu7i { unsigned long long v1:32; char v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_C_BFu7ll { unsigned long long v1:32; char v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_C_BFu7s { unsigned long long v1:32; char v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_C_BFu8c { unsigned long long v1:32; char v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_C_BFu8i { unsigned long long v1:32; char v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_C_BFu8ll { unsigned long long v1:32; char v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_C_BFu8s { unsigned long long v1:32; char v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_C_BFu9i { unsigned long long v1:32; char v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_C_BFu9ll { unsigned long long v1:32; char v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_C_BFu9s { unsigned long long v1:32; char v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_C_C { unsigned long long v1:32; char v2; char v3; };
struct __attribute__((packed)) aBFu32ll_C_D { unsigned long long v1:32; char v2; double v3; };
struct __attribute__((packed)) aBFu32ll_C_F { unsigned long long v1:32; char v2; float v3; };
struct __attribute__((packed)) aBFu32ll_C_I { unsigned long long v1:32; char v2; int v3; };
struct __attribute__((packed)) aBFu32ll_C_Ip { unsigned long long v1:32; char v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_C_L { unsigned long long v1:32; char v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_C_S { unsigned long long v1:32; char v2; short v3; };
struct __attribute__((packed)) aBFu32ll_C_Uc { unsigned long long v1:32; char v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_C_Ui { unsigned long long v1:32; char v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_C_Ul { unsigned long long v1:32; char v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_C_Us { unsigned long long v1:32; char v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_C_Vp { unsigned long long v1:32; char v2; void * v3; };
struct __attribute__((packed)) aBFu32ll_D { unsigned long long v1:32; double v2; };
struct __attribute__((packed)) aBFu32ll_D_BFu15i { unsigned long long v1:32; double v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_D_BFu15ll { unsigned long long v1:32; double v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_D_BFu15s { unsigned long long v1:32; double v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_D_BFu16i { unsigned long long v1:32; double v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_D_BFu16ll { unsigned long long v1:32; double v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_D_BFu16s { unsigned long long v1:32; double v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_D_BFu17i { unsigned long long v1:32; double v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_D_BFu17ll { unsigned long long v1:32; double v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_D_BFu1c { unsigned long long v1:32; double v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_D_BFu1i { unsigned long long v1:32; double v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_D_BFu1ll { unsigned long long v1:32; double v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_D_BFu1s { unsigned long long v1:32; double v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_D_BFu31i { unsigned long long v1:32; double v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_D_BFu31ll { unsigned long long v1:32; double v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_D_BFu32i { unsigned long long v1:32; double v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_D_BFu32ll { unsigned long long v1:32; double v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_D_BFu33 { unsigned long long v1:32; double v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_D_BFu7c { unsigned long long v1:32; double v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_D_BFu7i { unsigned long long v1:32; double v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_D_BFu7ll { unsigned long long v1:32; double v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_D_BFu7s { unsigned long long v1:32; double v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_D_BFu8c { unsigned long long v1:32; double v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_D_BFu8i { unsigned long long v1:32; double v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_D_BFu8ll { unsigned long long v1:32; double v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_D_BFu8s { unsigned long long v1:32; double v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_D_BFu9i { unsigned long long v1:32; double v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_D_BFu9ll { unsigned long long v1:32; double v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_D_BFu9s { unsigned long long v1:32; double v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_D_C { unsigned long long v1:32; double v2; char v3; };
struct __attribute__((packed)) aBFu32ll_D_D { unsigned long long v1:32; double v2; double v3; };
struct __attribute__((packed)) aBFu32ll_D_F { unsigned long long v1:32; double v2; float v3; };
struct __attribute__((packed)) aBFu32ll_D_I { unsigned long long v1:32; double v2; int v3; };
struct __attribute__((packed)) aBFu32ll_D_Ip { unsigned long long v1:32; double v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_D_L { unsigned long long v1:32; double v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_D_S { unsigned long long v1:32; double v2; short v3; };
struct __attribute__((packed)) aBFu32ll_D_Uc { unsigned long long v1:32; double v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_D_Ui { unsigned long long v1:32; double v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_D_Ul { unsigned long long v1:32; double v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_D_Us { unsigned long long v1:32; double v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_D_Vp { unsigned long long v1:32; double v2; void * v3; };
struct __attribute__((packed)) aBFu32ll_F { unsigned long long v1:32; float v2; };
struct __attribute__((packed)) aBFu32ll_F_BFu15i { unsigned long long v1:32; float v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_F_BFu15ll { unsigned long long v1:32; float v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_F_BFu15s { unsigned long long v1:32; float v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_F_BFu16i { unsigned long long v1:32; float v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_F_BFu16ll { unsigned long long v1:32; float v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_F_BFu16s { unsigned long long v1:32; float v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_F_BFu17i { unsigned long long v1:32; float v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_F_BFu17ll { unsigned long long v1:32; float v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_F_BFu1c { unsigned long long v1:32; float v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_F_BFu1i { unsigned long long v1:32; float v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_F_BFu1ll { unsigned long long v1:32; float v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_F_BFu1s { unsigned long long v1:32; float v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_F_BFu31i { unsigned long long v1:32; float v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_F_BFu31ll { unsigned long long v1:32; float v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_F_BFu32i { unsigned long long v1:32; float v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_F_BFu32ll { unsigned long long v1:32; float v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_F_BFu33 { unsigned long long v1:32; float v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_F_BFu7c { unsigned long long v1:32; float v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_F_BFu7i { unsigned long long v1:32; float v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_F_BFu7ll { unsigned long long v1:32; float v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_F_BFu7s { unsigned long long v1:32; float v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_F_BFu8c { unsigned long long v1:32; float v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_F_BFu8i { unsigned long long v1:32; float v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_F_BFu8ll { unsigned long long v1:32; float v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_F_BFu8s { unsigned long long v1:32; float v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_F_BFu9i { unsigned long long v1:32; float v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_F_BFu9ll { unsigned long long v1:32; float v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_F_BFu9s { unsigned long long v1:32; float v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_F_C { unsigned long long v1:32; float v2; char v3; };
struct __attribute__((packed)) aBFu32ll_F_D { unsigned long long v1:32; float v2; double v3; };
struct __attribute__((packed)) aBFu32ll_F_F { unsigned long long v1:32; float v2; float v3; };
struct __attribute__((packed)) aBFu32ll_F_I { unsigned long long v1:32; float v2; int v3; };
struct __attribute__((packed)) aBFu32ll_F_Ip { unsigned long long v1:32; float v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_F_L { unsigned long long v1:32; float v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_F_S { unsigned long long v1:32; float v2; short v3; };
struct __attribute__((packed)) aBFu32ll_F_Uc { unsigned long long v1:32; float v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_F_Ui { unsigned long long v1:32; float v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_F_Ul { unsigned long long v1:32; float v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_F_Us { unsigned long long v1:32; float v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_F_Vp { unsigned long long v1:32; float v2; void * v3; };
struct __attribute__((packed)) aBFu32ll_I { unsigned long long v1:32; int v2; };
struct __attribute__((packed)) aBFu32ll_I_BFu15i { unsigned long long v1:32; int v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_I_BFu15ll { unsigned long long v1:32; int v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_I_BFu15s { unsigned long long v1:32; int v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_I_BFu16i { unsigned long long v1:32; int v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_I_BFu16ll { unsigned long long v1:32; int v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_I_BFu16s { unsigned long long v1:32; int v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_I_BFu17i { unsigned long long v1:32; int v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_I_BFu17ll { unsigned long long v1:32; int v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_I_BFu1c { unsigned long long v1:32; int v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_I_BFu1i { unsigned long long v1:32; int v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_I_BFu1ll { unsigned long long v1:32; int v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_I_BFu1s { unsigned long long v1:32; int v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_I_BFu31i { unsigned long long v1:32; int v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_I_BFu31ll { unsigned long long v1:32; int v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_I_BFu32i { unsigned long long v1:32; int v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_I_BFu32ll { unsigned long long v1:32; int v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_I_BFu33 { unsigned long long v1:32; int v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_I_BFu7c { unsigned long long v1:32; int v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_I_BFu7i { unsigned long long v1:32; int v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_I_BFu7ll { unsigned long long v1:32; int v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_I_BFu7s { unsigned long long v1:32; int v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_I_BFu8c { unsigned long long v1:32; int v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_I_BFu8i { unsigned long long v1:32; int v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_I_BFu8ll { unsigned long long v1:32; int v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_I_BFu8s { unsigned long long v1:32; int v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_I_BFu9i { unsigned long long v1:32; int v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_I_BFu9ll { unsigned long long v1:32; int v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_I_BFu9s { unsigned long long v1:32; int v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_I_C { unsigned long long v1:32; int v2; char v3; };
struct __attribute__((packed)) aBFu32ll_I_D { unsigned long long v1:32; int v2; double v3; };
struct __attribute__((packed)) aBFu32ll_I_F { unsigned long long v1:32; int v2; float v3; };
struct __attribute__((packed)) aBFu32ll_I_I { unsigned long long v1:32; int v2; int v3; };
struct __attribute__((packed)) aBFu32ll_I_Ip { unsigned long long v1:32; int v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_I_L { unsigned long long v1:32; int v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_I_S { unsigned long long v1:32; int v2; short v3; };
struct __attribute__((packed)) aBFu32ll_I_Uc { unsigned long long v1:32; int v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_I_Ui { unsigned long long v1:32; int v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_I_Ul { unsigned long long v1:32; int v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_I_Us { unsigned long long v1:32; int v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_I_Vp { unsigned long long v1:32; int v2; void * v3; };
struct __attribute__((packed)) aBFu32ll_Ip { unsigned long long v1:32; int * v2; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu15i { unsigned long long v1:32; int * v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu15ll { unsigned long long v1:32; int * v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu15s { unsigned long long v1:32; int * v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu16i { unsigned long long v1:32; int * v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu16ll { unsigned long long v1:32; int * v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu16s { unsigned long long v1:32; int * v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu17i { unsigned long long v1:32; int * v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu17ll { unsigned long long v1:32; int * v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu1c { unsigned long long v1:32; int * v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu1i { unsigned long long v1:32; int * v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu1ll { unsigned long long v1:32; int * v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu1s { unsigned long long v1:32; int * v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu31i { unsigned long long v1:32; int * v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu31ll { unsigned long long v1:32; int * v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu32i { unsigned long long v1:32; int * v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu32ll { unsigned long long v1:32; int * v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu33 { unsigned long long v1:32; int * v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu7c { unsigned long long v1:32; int * v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu7i { unsigned long long v1:32; int * v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu7ll { unsigned long long v1:32; int * v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu7s { unsigned long long v1:32; int * v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu8c { unsigned long long v1:32; int * v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu8i { unsigned long long v1:32; int * v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu8ll { unsigned long long v1:32; int * v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu8s { unsigned long long v1:32; int * v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu9i { unsigned long long v1:32; int * v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu9ll { unsigned long long v1:32; int * v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_Ip_BFu9s { unsigned long long v1:32; int * v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_Ip_C { unsigned long long v1:32; int * v2; char v3; };
struct __attribute__((packed)) aBFu32ll_Ip_D { unsigned long long v1:32; int * v2; double v3; };
struct __attribute__((packed)) aBFu32ll_Ip_F { unsigned long long v1:32; int * v2; float v3; };
struct __attribute__((packed)) aBFu32ll_Ip_I { unsigned long long v1:32; int * v2; int v3; };
struct __attribute__((packed)) aBFu32ll_Ip_Ip { unsigned long long v1:32; int * v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_Ip_L { unsigned long long v1:32; int * v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_Ip_S { unsigned long long v1:32; int * v2; short v3; };
struct __attribute__((packed)) aBFu32ll_Ip_Uc { unsigned long long v1:32; int * v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_Ip_Ui { unsigned long long v1:32; int * v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_Ip_Ul { unsigned long long v1:32; int * v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_Ip_Us { unsigned long long v1:32; int * v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_Ip_Vp { unsigned long long v1:32; int * v2; void * v3; };
struct __attribute__((packed)) aBFu32ll_L { unsigned long long v1:32; long long v2; };
struct __attribute__((packed)) aBFu32ll_L_BFu15i { unsigned long long v1:32; long long v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_L_BFu15ll { unsigned long long v1:32; long long v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_L_BFu15s { unsigned long long v1:32; long long v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_L_BFu16i { unsigned long long v1:32; long long v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_L_BFu16ll { unsigned long long v1:32; long long v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_L_BFu16s { unsigned long long v1:32; long long v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_L_BFu17i { unsigned long long v1:32; long long v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_L_BFu17ll { unsigned long long v1:32; long long v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_L_BFu1c { unsigned long long v1:32; long long v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_L_BFu1i { unsigned long long v1:32; long long v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_L_BFu1ll { unsigned long long v1:32; long long v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_L_BFu1s { unsigned long long v1:32; long long v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_L_BFu31i { unsigned long long v1:32; long long v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_L_BFu31ll { unsigned long long v1:32; long long v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_L_BFu32i { unsigned long long v1:32; long long v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_L_BFu32ll { unsigned long long v1:32; long long v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_L_BFu33 { unsigned long long v1:32; long long v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_L_BFu7c { unsigned long long v1:32; long long v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_L_BFu7i { unsigned long long v1:32; long long v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_L_BFu7ll { unsigned long long v1:32; long long v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_L_BFu7s { unsigned long long v1:32; long long v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_L_BFu8c { unsigned long long v1:32; long long v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_L_BFu8i { unsigned long long v1:32; long long v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_L_BFu8ll { unsigned long long v1:32; long long v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_L_BFu8s { unsigned long long v1:32; long long v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_L_BFu9i { unsigned long long v1:32; long long v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_L_BFu9ll { unsigned long long v1:32; long long v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_L_BFu9s { unsigned long long v1:32; long long v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_L_C { unsigned long long v1:32; long long v2; char v3; };
struct __attribute__((packed)) aBFu32ll_L_D { unsigned long long v1:32; long long v2; double v3; };
struct __attribute__((packed)) aBFu32ll_L_F { unsigned long long v1:32; long long v2; float v3; };
struct __attribute__((packed)) aBFu32ll_L_I { unsigned long long v1:32; long long v2; int v3; };
struct __attribute__((packed)) aBFu32ll_L_Ip { unsigned long long v1:32; long long v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_L_L { unsigned long long v1:32; long long v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_L_S { unsigned long long v1:32; long long v2; short v3; };
struct __attribute__((packed)) aBFu32ll_L_Uc { unsigned long long v1:32; long long v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_L_Ui { unsigned long long v1:32; long long v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_L_Ul { unsigned long long v1:32; long long v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_L_Us { unsigned long long v1:32; long long v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_L_Vp { unsigned long long v1:32; long long v2; void * v3; };
struct __attribute__((packed)) aBFu32ll_S { unsigned long long v1:32; short v2; };
struct __attribute__((packed)) aBFu32ll_S_BFu15i { unsigned long long v1:32; short v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_S_BFu15ll { unsigned long long v1:32; short v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_S_BFu15s { unsigned long long v1:32; short v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_S_BFu16i { unsigned long long v1:32; short v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_S_BFu16ll { unsigned long long v1:32; short v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_S_BFu16s { unsigned long long v1:32; short v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_S_BFu17i { unsigned long long v1:32; short v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_S_BFu17ll { unsigned long long v1:32; short v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_S_BFu1c { unsigned long long v1:32; short v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_S_BFu1i { unsigned long long v1:32; short v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_S_BFu1ll { unsigned long long v1:32; short v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_S_BFu1s { unsigned long long v1:32; short v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_S_BFu31i { unsigned long long v1:32; short v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_S_BFu31ll { unsigned long long v1:32; short v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_S_BFu32i { unsigned long long v1:32; short v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_S_BFu32ll { unsigned long long v1:32; short v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_S_BFu33 { unsigned long long v1:32; short v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_S_BFu7c { unsigned long long v1:32; short v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_S_BFu7i { unsigned long long v1:32; short v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_S_BFu7ll { unsigned long long v1:32; short v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_S_BFu7s { unsigned long long v1:32; short v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_S_BFu8c { unsigned long long v1:32; short v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_S_BFu8i { unsigned long long v1:32; short v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_S_BFu8ll { unsigned long long v1:32; short v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_S_BFu8s { unsigned long long v1:32; short v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_S_BFu9i { unsigned long long v1:32; short v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_S_BFu9ll { unsigned long long v1:32; short v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_S_BFu9s { unsigned long long v1:32; short v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_S_C { unsigned long long v1:32; short v2; char v3; };
struct __attribute__((packed)) aBFu32ll_S_D { unsigned long long v1:32; short v2; double v3; };
struct __attribute__((packed)) aBFu32ll_S_F { unsigned long long v1:32; short v2; float v3; };
struct __attribute__((packed)) aBFu32ll_S_I { unsigned long long v1:32; short v2; int v3; };
struct __attribute__((packed)) aBFu32ll_S_Ip { unsigned long long v1:32; short v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_S_L { unsigned long long v1:32; short v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_S_S { unsigned long long v1:32; short v2; short v3; };
struct __attribute__((packed)) aBFu32ll_S_Uc { unsigned long long v1:32; short v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_S_Ui { unsigned long long v1:32; short v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_S_Ul { unsigned long long v1:32; short v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_S_Us { unsigned long long v1:32; short v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_S_Vp { unsigned long long v1:32; short v2; void * v3; };
struct __attribute__((packed)) aBFu32ll_Uc { unsigned long long v1:32; unsigned char v2; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu15i { unsigned long long v1:32; unsigned char v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu15ll { unsigned long long v1:32; unsigned char v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu15s { unsigned long long v1:32; unsigned char v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu16i { unsigned long long v1:32; unsigned char v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu16ll { unsigned long long v1:32; unsigned char v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu16s { unsigned long long v1:32; unsigned char v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu17i { unsigned long long v1:32; unsigned char v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu17ll { unsigned long long v1:32; unsigned char v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu1c { unsigned long long v1:32; unsigned char v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu1i { unsigned long long v1:32; unsigned char v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu1ll { unsigned long long v1:32; unsigned char v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu1s { unsigned long long v1:32; unsigned char v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu31i { unsigned long long v1:32; unsigned char v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu31ll { unsigned long long v1:32; unsigned char v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu32i { unsigned long long v1:32; unsigned char v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu32ll { unsigned long long v1:32; unsigned char v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu33 { unsigned long long v1:32; unsigned char v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu7c { unsigned long long v1:32; unsigned char v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu7i { unsigned long long v1:32; unsigned char v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu7ll { unsigned long long v1:32; unsigned char v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu7s { unsigned long long v1:32; unsigned char v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu8c { unsigned long long v1:32; unsigned char v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu8i { unsigned long long v1:32; unsigned char v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu8ll { unsigned long long v1:32; unsigned char v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu8s { unsigned long long v1:32; unsigned char v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu9i { unsigned long long v1:32; unsigned char v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu9ll { unsigned long long v1:32; unsigned char v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_Uc_BFu9s { unsigned long long v1:32; unsigned char v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_Uc_C { unsigned long long v1:32; unsigned char v2; char v3; };
struct __attribute__((packed)) aBFu32ll_Uc_D { unsigned long long v1:32; unsigned char v2; double v3; };
struct __attribute__((packed)) aBFu32ll_Uc_F { unsigned long long v1:32; unsigned char v2; float v3; };
struct __attribute__((packed)) aBFu32ll_Uc_I { unsigned long long v1:32; unsigned char v2; int v3; };
struct __attribute__((packed)) aBFu32ll_Uc_Ip { unsigned long long v1:32; unsigned char v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_Uc_L { unsigned long long v1:32; unsigned char v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_Uc_S { unsigned long long v1:32; unsigned char v2; short v3; };
struct __attribute__((packed)) aBFu32ll_Uc_Uc { unsigned long long v1:32; unsigned char v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_Uc_Ui { unsigned long long v1:32; unsigned char v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_Uc_Ul { unsigned long long v1:32; unsigned char v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_Uc_Us { unsigned long long v1:32; unsigned char v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_Uc_Vp { unsigned long long v1:32; unsigned char v2; void * v3; };
struct __attribute__((packed)) aBFu32ll_Ui { unsigned long long v1:32; unsigned int v2; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu15i { unsigned long long v1:32; unsigned int v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu15ll { unsigned long long v1:32; unsigned int v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu15s { unsigned long long v1:32; unsigned int v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu16i { unsigned long long v1:32; unsigned int v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu16ll { unsigned long long v1:32; unsigned int v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu16s { unsigned long long v1:32; unsigned int v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu17i { unsigned long long v1:32; unsigned int v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu17ll { unsigned long long v1:32; unsigned int v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu1c { unsigned long long v1:32; unsigned int v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu1i { unsigned long long v1:32; unsigned int v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu1ll { unsigned long long v1:32; unsigned int v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu1s { unsigned long long v1:32; unsigned int v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu31i { unsigned long long v1:32; unsigned int v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu31ll { unsigned long long v1:32; unsigned int v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu32i { unsigned long long v1:32; unsigned int v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu32ll { unsigned long long v1:32; unsigned int v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu33 { unsigned long long v1:32; unsigned int v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu7c { unsigned long long v1:32; unsigned int v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu7i { unsigned long long v1:32; unsigned int v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu7ll { unsigned long long v1:32; unsigned int v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu7s { unsigned long long v1:32; unsigned int v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu8c { unsigned long long v1:32; unsigned int v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu8i { unsigned long long v1:32; unsigned int v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu8ll { unsigned long long v1:32; unsigned int v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu8s { unsigned long long v1:32; unsigned int v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu9i { unsigned long long v1:32; unsigned int v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu9ll { unsigned long long v1:32; unsigned int v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_Ui_BFu9s { unsigned long long v1:32; unsigned int v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_Ui_C { unsigned long long v1:32; unsigned int v2; char v3; };
struct __attribute__((packed)) aBFu32ll_Ui_D { unsigned long long v1:32; unsigned int v2; double v3; };
struct __attribute__((packed)) aBFu32ll_Ui_F { unsigned long long v1:32; unsigned int v2; float v3; };
struct __attribute__((packed)) aBFu32ll_Ui_I { unsigned long long v1:32; unsigned int v2; int v3; };
struct __attribute__((packed)) aBFu32ll_Ui_Ip { unsigned long long v1:32; unsigned int v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_Ui_L { unsigned long long v1:32; unsigned int v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_Ui_S { unsigned long long v1:32; unsigned int v2; short v3; };
struct __attribute__((packed)) aBFu32ll_Ui_Uc { unsigned long long v1:32; unsigned int v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_Ui_Ui { unsigned long long v1:32; unsigned int v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_Ui_Ul { unsigned long long v1:32; unsigned int v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_Ui_Us { unsigned long long v1:32; unsigned int v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_Ui_Vp { unsigned long long v1:32; unsigned int v2; void * v3; };
struct __attribute__((packed)) aBFu32ll_Ul { unsigned long long v1:32; unsigned long long v2; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu15i { unsigned long long v1:32; unsigned long long v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu15ll { unsigned long long v1:32; unsigned long long v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu15s { unsigned long long v1:32; unsigned long long v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu16i { unsigned long long v1:32; unsigned long long v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu16ll { unsigned long long v1:32; unsigned long long v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu16s { unsigned long long v1:32; unsigned long long v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu17i { unsigned long long v1:32; unsigned long long v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu17ll { unsigned long long v1:32; unsigned long long v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu1c { unsigned long long v1:32; unsigned long long v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu1i { unsigned long long v1:32; unsigned long long v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu1ll { unsigned long long v1:32; unsigned long long v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu1s { unsigned long long v1:32; unsigned long long v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu31i { unsigned long long v1:32; unsigned long long v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu31ll { unsigned long long v1:32; unsigned long long v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu32i { unsigned long long v1:32; unsigned long long v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu32ll { unsigned long long v1:32; unsigned long long v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu33 { unsigned long long v1:32; unsigned long long v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu7c { unsigned long long v1:32; unsigned long long v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu7i { unsigned long long v1:32; unsigned long long v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu7ll { unsigned long long v1:32; unsigned long long v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu7s { unsigned long long v1:32; unsigned long long v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu8c { unsigned long long v1:32; unsigned long long v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu8i { unsigned long long v1:32; unsigned long long v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu8ll { unsigned long long v1:32; unsigned long long v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu8s { unsigned long long v1:32; unsigned long long v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu9i { unsigned long long v1:32; unsigned long long v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu9ll { unsigned long long v1:32; unsigned long long v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_Ul_BFu9s { unsigned long long v1:32; unsigned long long v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_Ul_C { unsigned long long v1:32; unsigned long long v2; char v3; };
struct __attribute__((packed)) aBFu32ll_Ul_D { unsigned long long v1:32; unsigned long long v2; double v3; };
struct __attribute__((packed)) aBFu32ll_Ul_F { unsigned long long v1:32; unsigned long long v2; float v3; };
struct __attribute__((packed)) aBFu32ll_Ul_I { unsigned long long v1:32; unsigned long long v2; int v3; };
struct __attribute__((packed)) aBFu32ll_Ul_Ip { unsigned long long v1:32; unsigned long long v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_Ul_L { unsigned long long v1:32; unsigned long long v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_Ul_S { unsigned long long v1:32; unsigned long long v2; short v3; };
struct __attribute__((packed)) aBFu32ll_Ul_Uc { unsigned long long v1:32; unsigned long long v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_Ul_Ui { unsigned long long v1:32; unsigned long long v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_Ul_Ul { unsigned long long v1:32; unsigned long long v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_Ul_Us { unsigned long long v1:32; unsigned long long v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_Ul_Vp { unsigned long long v1:32; unsigned long long v2; void * v3; };
struct __attribute__((packed)) aBFu32ll_Us { unsigned long long v1:32; unsigned short v2; };
struct __attribute__((packed)) aBFu32ll_Us_BFu15i { unsigned long long v1:32; unsigned short v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_Us_BFu15ll { unsigned long long v1:32; unsigned short v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_Us_BFu15s { unsigned long long v1:32; unsigned short v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_Us_BFu16i { unsigned long long v1:32; unsigned short v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_Us_BFu16ll { unsigned long long v1:32; unsigned short v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_Us_BFu16s { unsigned long long v1:32; unsigned short v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_Us_BFu17i { unsigned long long v1:32; unsigned short v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_Us_BFu17ll { unsigned long long v1:32; unsigned short v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_Us_BFu1c { unsigned long long v1:32; unsigned short v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_Us_BFu1i { unsigned long long v1:32; unsigned short v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_Us_BFu1ll { unsigned long long v1:32; unsigned short v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_Us_BFu1s { unsigned long long v1:32; unsigned short v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_Us_BFu31i { unsigned long long v1:32; unsigned short v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_Us_BFu31ll { unsigned long long v1:32; unsigned short v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_Us_BFu32i { unsigned long long v1:32; unsigned short v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_Us_BFu32ll { unsigned long long v1:32; unsigned short v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_Us_BFu33 { unsigned long long v1:32; unsigned short v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_Us_BFu7c { unsigned long long v1:32; unsigned short v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_Us_BFu7i { unsigned long long v1:32; unsigned short v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_Us_BFu7ll { unsigned long long v1:32; unsigned short v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_Us_BFu7s { unsigned long long v1:32; unsigned short v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_Us_BFu8c { unsigned long long v1:32; unsigned short v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_Us_BFu8i { unsigned long long v1:32; unsigned short v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_Us_BFu8ll { unsigned long long v1:32; unsigned short v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_Us_BFu8s { unsigned long long v1:32; unsigned short v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_Us_BFu9i { unsigned long long v1:32; unsigned short v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_Us_BFu9ll { unsigned long long v1:32; unsigned short v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_Us_BFu9s { unsigned long long v1:32; unsigned short v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_Us_C { unsigned long long v1:32; unsigned short v2; char v3; };
struct __attribute__((packed)) aBFu32ll_Us_D { unsigned long long v1:32; unsigned short v2; double v3; };
struct __attribute__((packed)) aBFu32ll_Us_F { unsigned long long v1:32; unsigned short v2; float v3; };
struct __attribute__((packed)) aBFu32ll_Us_I { unsigned long long v1:32; unsigned short v2; int v3; };
struct __attribute__((packed)) aBFu32ll_Us_Ip { unsigned long long v1:32; unsigned short v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_Us_L { unsigned long long v1:32; unsigned short v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_Us_S { unsigned long long v1:32; unsigned short v2; short v3; };
struct __attribute__((packed)) aBFu32ll_Us_Uc { unsigned long long v1:32; unsigned short v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_Us_Ui { unsigned long long v1:32; unsigned short v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_Us_Ul { unsigned long long v1:32; unsigned short v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_Us_Us { unsigned long long v1:32; unsigned short v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_Us_Vp { unsigned long long v1:32; unsigned short v2; void * v3; };
struct __attribute__((packed)) aBFu32ll_Vp { unsigned long long v1:32; void * v2; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu15i { unsigned long long v1:32; void * v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu15ll { unsigned long long v1:32; void * v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu15s { unsigned long long v1:32; void * v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu16i { unsigned long long v1:32; void * v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu16ll { unsigned long long v1:32; void * v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu16s { unsigned long long v1:32; void * v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu17i { unsigned long long v1:32; void * v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu17ll { unsigned long long v1:32; void * v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu1c { unsigned long long v1:32; void * v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu1i { unsigned long long v1:32; void * v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu1ll { unsigned long long v1:32; void * v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu1s { unsigned long long v1:32; void * v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu31i { unsigned long long v1:32; void * v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu31ll { unsigned long long v1:32; void * v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu32i { unsigned long long v1:32; void * v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu32ll { unsigned long long v1:32; void * v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu33 { unsigned long long v1:32; void * v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu7c { unsigned long long v1:32; void * v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu7i { unsigned long long v1:32; void * v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu7ll { unsigned long long v1:32; void * v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu7s { unsigned long long v1:32; void * v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu8c { unsigned long long v1:32; void * v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu8i { unsigned long long v1:32; void * v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu8ll { unsigned long long v1:32; void * v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu8s { unsigned long long v1:32; void * v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu9i { unsigned long long v1:32; void * v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu9ll { unsigned long long v1:32; void * v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu32ll_Vp_BFu9s { unsigned long long v1:32; void * v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu32ll_Vp_C { unsigned long long v1:32; void * v2; char v3; };
struct __attribute__((packed)) aBFu32ll_Vp_D { unsigned long long v1:32; void * v2; double v3; };
struct __attribute__((packed)) aBFu32ll_Vp_F { unsigned long long v1:32; void * v2; float v3; };
struct __attribute__((packed)) aBFu32ll_Vp_I { unsigned long long v1:32; void * v2; int v3; };
struct __attribute__((packed)) aBFu32ll_Vp_Ip { unsigned long long v1:32; void * v2; int * v3; };
struct __attribute__((packed)) aBFu32ll_Vp_L { unsigned long long v1:32; void * v2; long long v3; };
struct __attribute__((packed)) aBFu32ll_Vp_S { unsigned long long v1:32; void * v2; short v3; };
struct __attribute__((packed)) aBFu32ll_Vp_Uc { unsigned long long v1:32; void * v2; unsigned char v3; };
struct __attribute__((packed)) aBFu32ll_Vp_Ui { unsigned long long v1:32; void * v2; unsigned int v3; };
struct __attribute__((packed)) aBFu32ll_Vp_Ul { unsigned long long v1:32; void * v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu32ll_Vp_Us { unsigned long long v1:32; void * v2; unsigned short v3; };
struct __attribute__((packed)) aBFu32ll_Vp_Vp { unsigned long long v1:32; void * v2; void * v3; };
struct __attribute__((packed)) aBFu33 { unsigned long long v1:33; };
struct __attribute__((packed)) aBFu33_BFs33 { unsigned long long v1:33; signed long long v2:33; };
struct __attribute__((packed)) aBFu33_BFs33_BFs33 { unsigned long long v1:33; signed long long v2:33; signed long long v3:33; };
struct __attribute__((packed)) aBFu33_BFs33_BFs33_BFs33 { unsigned long long v1:33; signed long long v2:33; signed long long v3:33; signed long long v4:33; };
struct __attribute__((packed)) aBFu33_BFs33_BFs33_BFu33 { unsigned long long v1:33; signed long long v2:33; signed long long v3:33; unsigned long long v4:33; };
struct __attribute__((packed)) aBFu33_BFs33_BFu33 { unsigned long long v1:33; signed long long v2:33; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFs33_BFu33_BFs33 { unsigned long long v1:33; signed long long v2:33; unsigned long long v3:33; signed long long v4:33; };
struct __attribute__((packed)) aBFu33_BFs33_BFu33_BFu33 { unsigned long long v1:33; signed long long v2:33; unsigned long long v3:33; unsigned long long v4:33; };
struct __attribute__((packed)) aBFu33_BFu15i { unsigned long long v1:33; unsigned int v2:15; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu15i { unsigned long long v1:33; unsigned int v2:15; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu15ll { unsigned long long v1:33; unsigned int v2:15; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu15s { unsigned long long v1:33; unsigned int v2:15; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu16i { unsigned long long v1:33; unsigned int v2:15; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu16ll { unsigned long long v1:33; unsigned int v2:15; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu16s { unsigned long long v1:33; unsigned int v2:15; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu17i { unsigned long long v1:33; unsigned int v2:15; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu17ll { unsigned long long v1:33; unsigned int v2:15; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu1c { unsigned long long v1:33; unsigned int v2:15; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu1i { unsigned long long v1:33; unsigned int v2:15; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu1ll { unsigned long long v1:33; unsigned int v2:15; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu1s { unsigned long long v1:33; unsigned int v2:15; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu31i { unsigned long long v1:33; unsigned int v2:15; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu31ll { unsigned long long v1:33; unsigned int v2:15; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu32i { unsigned long long v1:33; unsigned int v2:15; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu32ll { unsigned long long v1:33; unsigned int v2:15; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu33 { unsigned long long v1:33; unsigned int v2:15; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu7c { unsigned long long v1:33; unsigned int v2:15; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu7i { unsigned long long v1:33; unsigned int v2:15; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu7ll { unsigned long long v1:33; unsigned int v2:15; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu7s { unsigned long long v1:33; unsigned int v2:15; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu8c { unsigned long long v1:33; unsigned int v2:15; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu8i { unsigned long long v1:33; unsigned int v2:15; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu8ll { unsigned long long v1:33; unsigned int v2:15; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu8s { unsigned long long v1:33; unsigned int v2:15; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu9i { unsigned long long v1:33; unsigned int v2:15; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu9ll { unsigned long long v1:33; unsigned int v2:15; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu15i_BFu9s { unsigned long long v1:33; unsigned int v2:15; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu15i_C { unsigned long long v1:33; unsigned int v2:15; char v3; };
struct __attribute__((packed)) aBFu33_BFu15i_D { unsigned long long v1:33; unsigned int v2:15; double v3; };
struct __attribute__((packed)) aBFu33_BFu15i_F { unsigned long long v1:33; unsigned int v2:15; float v3; };
struct __attribute__((packed)) aBFu33_BFu15i_I { unsigned long long v1:33; unsigned int v2:15; int v3; };
struct __attribute__((packed)) aBFu33_BFu15i_Ip { unsigned long long v1:33; unsigned int v2:15; int * v3; };
struct __attribute__((packed)) aBFu33_BFu15i_L { unsigned long long v1:33; unsigned int v2:15; long long v3; };
struct __attribute__((packed)) aBFu33_BFu15i_S { unsigned long long v1:33; unsigned int v2:15; short v3; };
struct __attribute__((packed)) aBFu33_BFu15i_Uc { unsigned long long v1:33; unsigned int v2:15; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu15i_Ui { unsigned long long v1:33; unsigned int v2:15; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu15i_Ul { unsigned long long v1:33; unsigned int v2:15; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu15i_Us { unsigned long long v1:33; unsigned int v2:15; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu15i_Vp { unsigned long long v1:33; unsigned int v2:15; void * v3; };
struct __attribute__((packed)) aBFu33_BFu15ll { unsigned long long v1:33; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu15i { unsigned long long v1:33; unsigned long long v2:15; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu15ll { unsigned long long v1:33; unsigned long long v2:15; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu15s { unsigned long long v1:33; unsigned long long v2:15; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu16i { unsigned long long v1:33; unsigned long long v2:15; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu16ll { unsigned long long v1:33; unsigned long long v2:15; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu16s { unsigned long long v1:33; unsigned long long v2:15; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu17i { unsigned long long v1:33; unsigned long long v2:15; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu17ll { unsigned long long v1:33; unsigned long long v2:15; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu1c { unsigned long long v1:33; unsigned long long v2:15; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu1i { unsigned long long v1:33; unsigned long long v2:15; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu1ll { unsigned long long v1:33; unsigned long long v2:15; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu1s { unsigned long long v1:33; unsigned long long v2:15; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu31i { unsigned long long v1:33; unsigned long long v2:15; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu31ll { unsigned long long v1:33; unsigned long long v2:15; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu32i { unsigned long long v1:33; unsigned long long v2:15; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu32ll { unsigned long long v1:33; unsigned long long v2:15; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu33 { unsigned long long v1:33; unsigned long long v2:15; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu7c { unsigned long long v1:33; unsigned long long v2:15; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu7i { unsigned long long v1:33; unsigned long long v2:15; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu7ll { unsigned long long v1:33; unsigned long long v2:15; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu7s { unsigned long long v1:33; unsigned long long v2:15; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu8c { unsigned long long v1:33; unsigned long long v2:15; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu8i { unsigned long long v1:33; unsigned long long v2:15; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu8ll { unsigned long long v1:33; unsigned long long v2:15; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu8s { unsigned long long v1:33; unsigned long long v2:15; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu9i { unsigned long long v1:33; unsigned long long v2:15; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu9ll { unsigned long long v1:33; unsigned long long v2:15; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu15ll_BFu9s { unsigned long long v1:33; unsigned long long v2:15; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu15ll_C { unsigned long long v1:33; unsigned long long v2:15; char v3; };
struct __attribute__((packed)) aBFu33_BFu15ll_D { unsigned long long v1:33; unsigned long long v2:15; double v3; };
struct __attribute__((packed)) aBFu33_BFu15ll_F { unsigned long long v1:33; unsigned long long v2:15; float v3; };
struct __attribute__((packed)) aBFu33_BFu15ll_I { unsigned long long v1:33; unsigned long long v2:15; int v3; };
struct __attribute__((packed)) aBFu33_BFu15ll_Ip { unsigned long long v1:33; unsigned long long v2:15; int * v3; };
struct __attribute__((packed)) aBFu33_BFu15ll_L { unsigned long long v1:33; unsigned long long v2:15; long long v3; };
struct __attribute__((packed)) aBFu33_BFu15ll_S { unsigned long long v1:33; unsigned long long v2:15; short v3; };
struct __attribute__((packed)) aBFu33_BFu15ll_Uc { unsigned long long v1:33; unsigned long long v2:15; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu15ll_Ui { unsigned long long v1:33; unsigned long long v2:15; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu15ll_Ul { unsigned long long v1:33; unsigned long long v2:15; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu15ll_Us { unsigned long long v1:33; unsigned long long v2:15; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu15ll_Vp { unsigned long long v1:33; unsigned long long v2:15; void * v3; };
struct __attribute__((packed)) aBFu33_BFu15s { unsigned long long v1:33; unsigned short v2:15; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu15i { unsigned long long v1:33; unsigned short v2:15; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu15ll { unsigned long long v1:33; unsigned short v2:15; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu15s { unsigned long long v1:33; unsigned short v2:15; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu16i { unsigned long long v1:33; unsigned short v2:15; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu16ll { unsigned long long v1:33; unsigned short v2:15; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu16s { unsigned long long v1:33; unsigned short v2:15; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu17i { unsigned long long v1:33; unsigned short v2:15; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu17ll { unsigned long long v1:33; unsigned short v2:15; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu1c { unsigned long long v1:33; unsigned short v2:15; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu1i { unsigned long long v1:33; unsigned short v2:15; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu1ll { unsigned long long v1:33; unsigned short v2:15; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu1s { unsigned long long v1:33; unsigned short v2:15; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu31i { unsigned long long v1:33; unsigned short v2:15; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu31ll { unsigned long long v1:33; unsigned short v2:15; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu32i { unsigned long long v1:33; unsigned short v2:15; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu32ll { unsigned long long v1:33; unsigned short v2:15; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu33 { unsigned long long v1:33; unsigned short v2:15; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu7c { unsigned long long v1:33; unsigned short v2:15; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu7i { unsigned long long v1:33; unsigned short v2:15; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu7ll { unsigned long long v1:33; unsigned short v2:15; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu7s { unsigned long long v1:33; unsigned short v2:15; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu8c { unsigned long long v1:33; unsigned short v2:15; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu8i { unsigned long long v1:33; unsigned short v2:15; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu8ll { unsigned long long v1:33; unsigned short v2:15; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu8s { unsigned long long v1:33; unsigned short v2:15; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu9i { unsigned long long v1:33; unsigned short v2:15; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu9ll { unsigned long long v1:33; unsigned short v2:15; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu15s_BFu9s { unsigned long long v1:33; unsigned short v2:15; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu15s_C { unsigned long long v1:33; unsigned short v2:15; char v3; };
struct __attribute__((packed)) aBFu33_BFu15s_D { unsigned long long v1:33; unsigned short v2:15; double v3; };
struct __attribute__((packed)) aBFu33_BFu15s_F { unsigned long long v1:33; unsigned short v2:15; float v3; };
struct __attribute__((packed)) aBFu33_BFu15s_I { unsigned long long v1:33; unsigned short v2:15; int v3; };
struct __attribute__((packed)) aBFu33_BFu15s_Ip { unsigned long long v1:33; unsigned short v2:15; int * v3; };
struct __attribute__((packed)) aBFu33_BFu15s_L { unsigned long long v1:33; unsigned short v2:15; long long v3; };
struct __attribute__((packed)) aBFu33_BFu15s_S { unsigned long long v1:33; unsigned short v2:15; short v3; };
struct __attribute__((packed)) aBFu33_BFu15s_Uc { unsigned long long v1:33; unsigned short v2:15; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu15s_Ui { unsigned long long v1:33; unsigned short v2:15; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu15s_Ul { unsigned long long v1:33; unsigned short v2:15; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu15s_Us { unsigned long long v1:33; unsigned short v2:15; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu15s_Vp { unsigned long long v1:33; unsigned short v2:15; void * v3; };
struct __attribute__((packed)) aBFu33_BFu16i { unsigned long long v1:33; unsigned int v2:16; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu15i { unsigned long long v1:33; unsigned int v2:16; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu15ll { unsigned long long v1:33; unsigned int v2:16; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu15s { unsigned long long v1:33; unsigned int v2:16; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu16i { unsigned long long v1:33; unsigned int v2:16; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu16ll { unsigned long long v1:33; unsigned int v2:16; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu16s { unsigned long long v1:33; unsigned int v2:16; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu17i { unsigned long long v1:33; unsigned int v2:16; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu17ll { unsigned long long v1:33; unsigned int v2:16; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu1c { unsigned long long v1:33; unsigned int v2:16; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu1i { unsigned long long v1:33; unsigned int v2:16; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu1ll { unsigned long long v1:33; unsigned int v2:16; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu1s { unsigned long long v1:33; unsigned int v2:16; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu31i { unsigned long long v1:33; unsigned int v2:16; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu31ll { unsigned long long v1:33; unsigned int v2:16; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu32i { unsigned long long v1:33; unsigned int v2:16; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu32ll { unsigned long long v1:33; unsigned int v2:16; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu33 { unsigned long long v1:33; unsigned int v2:16; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu7c { unsigned long long v1:33; unsigned int v2:16; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu7i { unsigned long long v1:33; unsigned int v2:16; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu7ll { unsigned long long v1:33; unsigned int v2:16; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu7s { unsigned long long v1:33; unsigned int v2:16; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu8c { unsigned long long v1:33; unsigned int v2:16; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu8i { unsigned long long v1:33; unsigned int v2:16; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu8ll { unsigned long long v1:33; unsigned int v2:16; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu8s { unsigned long long v1:33; unsigned int v2:16; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu9i { unsigned long long v1:33; unsigned int v2:16; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu9ll { unsigned long long v1:33; unsigned int v2:16; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu16i_BFu9s { unsigned long long v1:33; unsigned int v2:16; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu16i_C { unsigned long long v1:33; unsigned int v2:16; char v3; };
struct __attribute__((packed)) aBFu33_BFu16i_D { unsigned long long v1:33; unsigned int v2:16; double v3; };
struct __attribute__((packed)) aBFu33_BFu16i_F { unsigned long long v1:33; unsigned int v2:16; float v3; };
struct __attribute__((packed)) aBFu33_BFu16i_I { unsigned long long v1:33; unsigned int v2:16; int v3; };
struct __attribute__((packed)) aBFu33_BFu16i_Ip { unsigned long long v1:33; unsigned int v2:16; int * v3; };
struct __attribute__((packed)) aBFu33_BFu16i_L { unsigned long long v1:33; unsigned int v2:16; long long v3; };
struct __attribute__((packed)) aBFu33_BFu16i_S { unsigned long long v1:33; unsigned int v2:16; short v3; };
struct __attribute__((packed)) aBFu33_BFu16i_Uc { unsigned long long v1:33; unsigned int v2:16; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu16i_Ui { unsigned long long v1:33; unsigned int v2:16; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu16i_Ul { unsigned long long v1:33; unsigned int v2:16; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu16i_Us { unsigned long long v1:33; unsigned int v2:16; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu16i_Vp { unsigned long long v1:33; unsigned int v2:16; void * v3; };
struct __attribute__((packed)) aBFu33_BFu16ll { unsigned long long v1:33; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu15i { unsigned long long v1:33; unsigned long long v2:16; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu15ll { unsigned long long v1:33; unsigned long long v2:16; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu15s { unsigned long long v1:33; unsigned long long v2:16; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu16i { unsigned long long v1:33; unsigned long long v2:16; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu16ll { unsigned long long v1:33; unsigned long long v2:16; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu16s { unsigned long long v1:33; unsigned long long v2:16; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu17i { unsigned long long v1:33; unsigned long long v2:16; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu17ll { unsigned long long v1:33; unsigned long long v2:16; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu1c { unsigned long long v1:33; unsigned long long v2:16; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu1i { unsigned long long v1:33; unsigned long long v2:16; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu1ll { unsigned long long v1:33; unsigned long long v2:16; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu1s { unsigned long long v1:33; unsigned long long v2:16; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu31i { unsigned long long v1:33; unsigned long long v2:16; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu31ll { unsigned long long v1:33; unsigned long long v2:16; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu32i { unsigned long long v1:33; unsigned long long v2:16; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu32ll { unsigned long long v1:33; unsigned long long v2:16; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu33 { unsigned long long v1:33; unsigned long long v2:16; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu7c { unsigned long long v1:33; unsigned long long v2:16; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu7i { unsigned long long v1:33; unsigned long long v2:16; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu7ll { unsigned long long v1:33; unsigned long long v2:16; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu7s { unsigned long long v1:33; unsigned long long v2:16; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu8c { unsigned long long v1:33; unsigned long long v2:16; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu8i { unsigned long long v1:33; unsigned long long v2:16; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu8ll { unsigned long long v1:33; unsigned long long v2:16; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu8s { unsigned long long v1:33; unsigned long long v2:16; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu9i { unsigned long long v1:33; unsigned long long v2:16; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu9ll { unsigned long long v1:33; unsigned long long v2:16; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu16ll_BFu9s { unsigned long long v1:33; unsigned long long v2:16; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu16ll_C { unsigned long long v1:33; unsigned long long v2:16; char v3; };
struct __attribute__((packed)) aBFu33_BFu16ll_D { unsigned long long v1:33; unsigned long long v2:16; double v3; };
struct __attribute__((packed)) aBFu33_BFu16ll_F { unsigned long long v1:33; unsigned long long v2:16; float v3; };
struct __attribute__((packed)) aBFu33_BFu16ll_I { unsigned long long v1:33; unsigned long long v2:16; int v3; };
struct __attribute__((packed)) aBFu33_BFu16ll_Ip { unsigned long long v1:33; unsigned long long v2:16; int * v3; };
struct __attribute__((packed)) aBFu33_BFu16ll_L { unsigned long long v1:33; unsigned long long v2:16; long long v3; };
struct __attribute__((packed)) aBFu33_BFu16ll_S { unsigned long long v1:33; unsigned long long v2:16; short v3; };
struct __attribute__((packed)) aBFu33_BFu16ll_Uc { unsigned long long v1:33; unsigned long long v2:16; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu16ll_Ui { unsigned long long v1:33; unsigned long long v2:16; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu16ll_Ul { unsigned long long v1:33; unsigned long long v2:16; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu16ll_Us { unsigned long long v1:33; unsigned long long v2:16; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu16ll_Vp { unsigned long long v1:33; unsigned long long v2:16; void * v3; };
struct __attribute__((packed)) aBFu33_BFu16s { unsigned long long v1:33; unsigned short v2:16; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu15i { unsigned long long v1:33; unsigned short v2:16; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu15ll { unsigned long long v1:33; unsigned short v2:16; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu15s { unsigned long long v1:33; unsigned short v2:16; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu16i { unsigned long long v1:33; unsigned short v2:16; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu16ll { unsigned long long v1:33; unsigned short v2:16; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu16s { unsigned long long v1:33; unsigned short v2:16; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu17i { unsigned long long v1:33; unsigned short v2:16; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu17ll { unsigned long long v1:33; unsigned short v2:16; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu1c { unsigned long long v1:33; unsigned short v2:16; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu1i { unsigned long long v1:33; unsigned short v2:16; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu1ll { unsigned long long v1:33; unsigned short v2:16; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu1s { unsigned long long v1:33; unsigned short v2:16; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu31i { unsigned long long v1:33; unsigned short v2:16; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu31ll { unsigned long long v1:33; unsigned short v2:16; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu32i { unsigned long long v1:33; unsigned short v2:16; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu32ll { unsigned long long v1:33; unsigned short v2:16; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu33 { unsigned long long v1:33; unsigned short v2:16; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu7c { unsigned long long v1:33; unsigned short v2:16; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu7i { unsigned long long v1:33; unsigned short v2:16; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu7ll { unsigned long long v1:33; unsigned short v2:16; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu7s { unsigned long long v1:33; unsigned short v2:16; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu8c { unsigned long long v1:33; unsigned short v2:16; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu8i { unsigned long long v1:33; unsigned short v2:16; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu8ll { unsigned long long v1:33; unsigned short v2:16; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu8s { unsigned long long v1:33; unsigned short v2:16; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu9i { unsigned long long v1:33; unsigned short v2:16; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu9ll { unsigned long long v1:33; unsigned short v2:16; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu16s_BFu9s { unsigned long long v1:33; unsigned short v2:16; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu16s_C { unsigned long long v1:33; unsigned short v2:16; char v3; };
struct __attribute__((packed)) aBFu33_BFu16s_D { unsigned long long v1:33; unsigned short v2:16; double v3; };
struct __attribute__((packed)) aBFu33_BFu16s_F { unsigned long long v1:33; unsigned short v2:16; float v3; };
struct __attribute__((packed)) aBFu33_BFu16s_I { unsigned long long v1:33; unsigned short v2:16; int v3; };
struct __attribute__((packed)) aBFu33_BFu16s_Ip { unsigned long long v1:33; unsigned short v2:16; int * v3; };
struct __attribute__((packed)) aBFu33_BFu16s_L { unsigned long long v1:33; unsigned short v2:16; long long v3; };
struct __attribute__((packed)) aBFu33_BFu16s_S { unsigned long long v1:33; unsigned short v2:16; short v3; };
struct __attribute__((packed)) aBFu33_BFu16s_Uc { unsigned long long v1:33; unsigned short v2:16; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu16s_Ui { unsigned long long v1:33; unsigned short v2:16; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu16s_Ul { unsigned long long v1:33; unsigned short v2:16; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu16s_Us { unsigned long long v1:33; unsigned short v2:16; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu16s_Vp { unsigned long long v1:33; unsigned short v2:16; void * v3; };
struct __attribute__((packed)) aBFu33_BFu17i { unsigned long long v1:33; unsigned int v2:17; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu15i { unsigned long long v1:33; unsigned int v2:17; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu15ll { unsigned long long v1:33; unsigned int v2:17; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu15s { unsigned long long v1:33; unsigned int v2:17; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu16i { unsigned long long v1:33; unsigned int v2:17; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu16ll { unsigned long long v1:33; unsigned int v2:17; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu16s { unsigned long long v1:33; unsigned int v2:17; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu17i { unsigned long long v1:33; unsigned int v2:17; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu17ll { unsigned long long v1:33; unsigned int v2:17; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu1c { unsigned long long v1:33; unsigned int v2:17; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu1i { unsigned long long v1:33; unsigned int v2:17; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu1ll { unsigned long long v1:33; unsigned int v2:17; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu1s { unsigned long long v1:33; unsigned int v2:17; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu31i { unsigned long long v1:33; unsigned int v2:17; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu31ll { unsigned long long v1:33; unsigned int v2:17; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu32i { unsigned long long v1:33; unsigned int v2:17; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu32ll { unsigned long long v1:33; unsigned int v2:17; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu33 { unsigned long long v1:33; unsigned int v2:17; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu7c { unsigned long long v1:33; unsigned int v2:17; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu7i { unsigned long long v1:33; unsigned int v2:17; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu7ll { unsigned long long v1:33; unsigned int v2:17; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu7s { unsigned long long v1:33; unsigned int v2:17; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu8c { unsigned long long v1:33; unsigned int v2:17; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu8i { unsigned long long v1:33; unsigned int v2:17; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu8ll { unsigned long long v1:33; unsigned int v2:17; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu8s { unsigned long long v1:33; unsigned int v2:17; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu9i { unsigned long long v1:33; unsigned int v2:17; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu9ll { unsigned long long v1:33; unsigned int v2:17; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu17i_BFu9s { unsigned long long v1:33; unsigned int v2:17; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu17i_C { unsigned long long v1:33; unsigned int v2:17; char v3; };
struct __attribute__((packed)) aBFu33_BFu17i_D { unsigned long long v1:33; unsigned int v2:17; double v3; };
struct __attribute__((packed)) aBFu33_BFu17i_F { unsigned long long v1:33; unsigned int v2:17; float v3; };
struct __attribute__((packed)) aBFu33_BFu17i_I { unsigned long long v1:33; unsigned int v2:17; int v3; };
struct __attribute__((packed)) aBFu33_BFu17i_Ip { unsigned long long v1:33; unsigned int v2:17; int * v3; };
struct __attribute__((packed)) aBFu33_BFu17i_L { unsigned long long v1:33; unsigned int v2:17; long long v3; };
struct __attribute__((packed)) aBFu33_BFu17i_S { unsigned long long v1:33; unsigned int v2:17; short v3; };
struct __attribute__((packed)) aBFu33_BFu17i_Uc { unsigned long long v1:33; unsigned int v2:17; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu17i_Ui { unsigned long long v1:33; unsigned int v2:17; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu17i_Ul { unsigned long long v1:33; unsigned int v2:17; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu17i_Us { unsigned long long v1:33; unsigned int v2:17; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu17i_Vp { unsigned long long v1:33; unsigned int v2:17; void * v3; };
struct __attribute__((packed)) aBFu33_BFu17ll { unsigned long long v1:33; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu15i { unsigned long long v1:33; unsigned long long v2:17; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu15ll { unsigned long long v1:33; unsigned long long v2:17; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu15s { unsigned long long v1:33; unsigned long long v2:17; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu16i { unsigned long long v1:33; unsigned long long v2:17; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu16ll { unsigned long long v1:33; unsigned long long v2:17; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu16s { unsigned long long v1:33; unsigned long long v2:17; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu17i { unsigned long long v1:33; unsigned long long v2:17; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu17ll { unsigned long long v1:33; unsigned long long v2:17; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu1c { unsigned long long v1:33; unsigned long long v2:17; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu1i { unsigned long long v1:33; unsigned long long v2:17; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu1ll { unsigned long long v1:33; unsigned long long v2:17; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu1s { unsigned long long v1:33; unsigned long long v2:17; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu31i { unsigned long long v1:33; unsigned long long v2:17; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu31ll { unsigned long long v1:33; unsigned long long v2:17; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu32i { unsigned long long v1:33; unsigned long long v2:17; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu32ll { unsigned long long v1:33; unsigned long long v2:17; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu33 { unsigned long long v1:33; unsigned long long v2:17; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu7c { unsigned long long v1:33; unsigned long long v2:17; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu7i { unsigned long long v1:33; unsigned long long v2:17; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu7ll { unsigned long long v1:33; unsigned long long v2:17; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu7s { unsigned long long v1:33; unsigned long long v2:17; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu8c { unsigned long long v1:33; unsigned long long v2:17; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu8i { unsigned long long v1:33; unsigned long long v2:17; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu8ll { unsigned long long v1:33; unsigned long long v2:17; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu8s { unsigned long long v1:33; unsigned long long v2:17; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu9i { unsigned long long v1:33; unsigned long long v2:17; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu9ll { unsigned long long v1:33; unsigned long long v2:17; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu17ll_BFu9s { unsigned long long v1:33; unsigned long long v2:17; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu17ll_C { unsigned long long v1:33; unsigned long long v2:17; char v3; };
struct __attribute__((packed)) aBFu33_BFu17ll_D { unsigned long long v1:33; unsigned long long v2:17; double v3; };
struct __attribute__((packed)) aBFu33_BFu17ll_F { unsigned long long v1:33; unsigned long long v2:17; float v3; };
struct __attribute__((packed)) aBFu33_BFu17ll_I { unsigned long long v1:33; unsigned long long v2:17; int v3; };
struct __attribute__((packed)) aBFu33_BFu17ll_Ip { unsigned long long v1:33; unsigned long long v2:17; int * v3; };
struct __attribute__((packed)) aBFu33_BFu17ll_L { unsigned long long v1:33; unsigned long long v2:17; long long v3; };
struct __attribute__((packed)) aBFu33_BFu17ll_S { unsigned long long v1:33; unsigned long long v2:17; short v3; };
struct __attribute__((packed)) aBFu33_BFu17ll_Uc { unsigned long long v1:33; unsigned long long v2:17; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu17ll_Ui { unsigned long long v1:33; unsigned long long v2:17; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu17ll_Ul { unsigned long long v1:33; unsigned long long v2:17; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu17ll_Us { unsigned long long v1:33; unsigned long long v2:17; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu17ll_Vp { unsigned long long v1:33; unsigned long long v2:17; void * v3; };
struct __attribute__((packed)) aBFu33_BFu1c { unsigned long long v1:33; unsigned char v2:1; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu15i { unsigned long long v1:33; unsigned char v2:1; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu15ll { unsigned long long v1:33; unsigned char v2:1; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu15s { unsigned long long v1:33; unsigned char v2:1; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu16i { unsigned long long v1:33; unsigned char v2:1; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu16ll { unsigned long long v1:33; unsigned char v2:1; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu16s { unsigned long long v1:33; unsigned char v2:1; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu17i { unsigned long long v1:33; unsigned char v2:1; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu17ll { unsigned long long v1:33; unsigned char v2:1; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu1c { unsigned long long v1:33; unsigned char v2:1; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu1i { unsigned long long v1:33; unsigned char v2:1; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu1ll { unsigned long long v1:33; unsigned char v2:1; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu1s { unsigned long long v1:33; unsigned char v2:1; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu31i { unsigned long long v1:33; unsigned char v2:1; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu31ll { unsigned long long v1:33; unsigned char v2:1; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu32i { unsigned long long v1:33; unsigned char v2:1; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu32ll { unsigned long long v1:33; unsigned char v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu33 { unsigned long long v1:33; unsigned char v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu7c { unsigned long long v1:33; unsigned char v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu7i { unsigned long long v1:33; unsigned char v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu7ll { unsigned long long v1:33; unsigned char v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu7s { unsigned long long v1:33; unsigned char v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu8c { unsigned long long v1:33; unsigned char v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu8i { unsigned long long v1:33; unsigned char v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu8ll { unsigned long long v1:33; unsigned char v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu8s { unsigned long long v1:33; unsigned char v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu9i { unsigned long long v1:33; unsigned char v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu9ll { unsigned long long v1:33; unsigned char v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu1c_BFu9s { unsigned long long v1:33; unsigned char v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu1c_C { unsigned long long v1:33; unsigned char v2:1; char v3; };
struct __attribute__((packed)) aBFu33_BFu1c_D { unsigned long long v1:33; unsigned char v2:1; double v3; };
struct __attribute__((packed)) aBFu33_BFu1c_F { unsigned long long v1:33; unsigned char v2:1; float v3; };
struct __attribute__((packed)) aBFu33_BFu1c_I { unsigned long long v1:33; unsigned char v2:1; int v3; };
struct __attribute__((packed)) aBFu33_BFu1c_Ip { unsigned long long v1:33; unsigned char v2:1; int * v3; };
struct __attribute__((packed)) aBFu33_BFu1c_L { unsigned long long v1:33; unsigned char v2:1; long long v3; };
struct __attribute__((packed)) aBFu33_BFu1c_S { unsigned long long v1:33; unsigned char v2:1; short v3; };
struct __attribute__((packed)) aBFu33_BFu1c_Uc { unsigned long long v1:33; unsigned char v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu1c_Ui { unsigned long long v1:33; unsigned char v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu1c_Ul { unsigned long long v1:33; unsigned char v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu1c_Us { unsigned long long v1:33; unsigned char v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu1c_Vp { unsigned long long v1:33; unsigned char v2:1; void * v3; };
struct __attribute__((packed)) aBFu33_BFu1i { unsigned long long v1:33; unsigned int v2:1; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu15i { unsigned long long v1:33; unsigned int v2:1; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu15ll { unsigned long long v1:33; unsigned int v2:1; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu15s { unsigned long long v1:33; unsigned int v2:1; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu16i { unsigned long long v1:33; unsigned int v2:1; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu16ll { unsigned long long v1:33; unsigned int v2:1; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu16s { unsigned long long v1:33; unsigned int v2:1; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu17i { unsigned long long v1:33; unsigned int v2:1; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu17ll { unsigned long long v1:33; unsigned int v2:1; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu1c { unsigned long long v1:33; unsigned int v2:1; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu1i { unsigned long long v1:33; unsigned int v2:1; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu1ll { unsigned long long v1:33; unsigned int v2:1; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu1s { unsigned long long v1:33; unsigned int v2:1; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu31i { unsigned long long v1:33; unsigned int v2:1; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu31ll { unsigned long long v1:33; unsigned int v2:1; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu32i { unsigned long long v1:33; unsigned int v2:1; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu32ll { unsigned long long v1:33; unsigned int v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu33 { unsigned long long v1:33; unsigned int v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu7c { unsigned long long v1:33; unsigned int v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu7i { unsigned long long v1:33; unsigned int v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu7ll { unsigned long long v1:33; unsigned int v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu7s { unsigned long long v1:33; unsigned int v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu8c { unsigned long long v1:33; unsigned int v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu8i { unsigned long long v1:33; unsigned int v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu8ll { unsigned long long v1:33; unsigned int v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu8s { unsigned long long v1:33; unsigned int v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu9i { unsigned long long v1:33; unsigned int v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu9ll { unsigned long long v1:33; unsigned int v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu1i_BFu9s { unsigned long long v1:33; unsigned int v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu1i_C { unsigned long long v1:33; unsigned int v2:1; char v3; };
struct __attribute__((packed)) aBFu33_BFu1i_D { unsigned long long v1:33; unsigned int v2:1; double v3; };
struct __attribute__((packed)) aBFu33_BFu1i_F { unsigned long long v1:33; unsigned int v2:1; float v3; };
struct __attribute__((packed)) aBFu33_BFu1i_I { unsigned long long v1:33; unsigned int v2:1; int v3; };
struct __attribute__((packed)) aBFu33_BFu1i_Ip { unsigned long long v1:33; unsigned int v2:1; int * v3; };
struct __attribute__((packed)) aBFu33_BFu1i_L { unsigned long long v1:33; unsigned int v2:1; long long v3; };
struct __attribute__((packed)) aBFu33_BFu1i_S { unsigned long long v1:33; unsigned int v2:1; short v3; };
struct __attribute__((packed)) aBFu33_BFu1i_Uc { unsigned long long v1:33; unsigned int v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu1i_Ui { unsigned long long v1:33; unsigned int v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu1i_Ul { unsigned long long v1:33; unsigned int v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu1i_Us { unsigned long long v1:33; unsigned int v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu1i_Vp { unsigned long long v1:33; unsigned int v2:1; void * v3; };
struct __attribute__((packed)) aBFu33_BFu1ll { unsigned long long v1:33; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu15i { unsigned long long v1:33; unsigned long long v2:1; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu15ll { unsigned long long v1:33; unsigned long long v2:1; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu15s { unsigned long long v1:33; unsigned long long v2:1; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu16i { unsigned long long v1:33; unsigned long long v2:1; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu16ll { unsigned long long v1:33; unsigned long long v2:1; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu16s { unsigned long long v1:33; unsigned long long v2:1; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu17i { unsigned long long v1:33; unsigned long long v2:1; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu17ll { unsigned long long v1:33; unsigned long long v2:1; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu1c { unsigned long long v1:33; unsigned long long v2:1; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu1i { unsigned long long v1:33; unsigned long long v2:1; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu1ll { unsigned long long v1:33; unsigned long long v2:1; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu1s { unsigned long long v1:33; unsigned long long v2:1; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu31i { unsigned long long v1:33; unsigned long long v2:1; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu31ll { unsigned long long v1:33; unsigned long long v2:1; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu32i { unsigned long long v1:33; unsigned long long v2:1; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu32ll { unsigned long long v1:33; unsigned long long v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu33 { unsigned long long v1:33; unsigned long long v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu7c { unsigned long long v1:33; unsigned long long v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu7i { unsigned long long v1:33; unsigned long long v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu7ll { unsigned long long v1:33; unsigned long long v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu7s { unsigned long long v1:33; unsigned long long v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu8c { unsigned long long v1:33; unsigned long long v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu8i { unsigned long long v1:33; unsigned long long v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu8ll { unsigned long long v1:33; unsigned long long v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu8s { unsigned long long v1:33; unsigned long long v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu9i { unsigned long long v1:33; unsigned long long v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu9ll { unsigned long long v1:33; unsigned long long v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu1ll_BFu9s { unsigned long long v1:33; unsigned long long v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu1ll_C { unsigned long long v1:33; unsigned long long v2:1; char v3; };
struct __attribute__((packed)) aBFu33_BFu1ll_D { unsigned long long v1:33; unsigned long long v2:1; double v3; };
struct __attribute__((packed)) aBFu33_BFu1ll_F { unsigned long long v1:33; unsigned long long v2:1; float v3; };
struct __attribute__((packed)) aBFu33_BFu1ll_I { unsigned long long v1:33; unsigned long long v2:1; int v3; };
struct __attribute__((packed)) aBFu33_BFu1ll_Ip { unsigned long long v1:33; unsigned long long v2:1; int * v3; };
struct __attribute__((packed)) aBFu33_BFu1ll_L { unsigned long long v1:33; unsigned long long v2:1; long long v3; };
struct __attribute__((packed)) aBFu33_BFu1ll_S { unsigned long long v1:33; unsigned long long v2:1; short v3; };
struct __attribute__((packed)) aBFu33_BFu1ll_Uc { unsigned long long v1:33; unsigned long long v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu1ll_Ui { unsigned long long v1:33; unsigned long long v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu1ll_Ul { unsigned long long v1:33; unsigned long long v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu1ll_Us { unsigned long long v1:33; unsigned long long v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu1ll_Vp { unsigned long long v1:33; unsigned long long v2:1; void * v3; };
struct __attribute__((packed)) aBFu33_BFu1s { unsigned long long v1:33; unsigned short v2:1; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu15i { unsigned long long v1:33; unsigned short v2:1; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu15ll { unsigned long long v1:33; unsigned short v2:1; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu15s { unsigned long long v1:33; unsigned short v2:1; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu16i { unsigned long long v1:33; unsigned short v2:1; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu16ll { unsigned long long v1:33; unsigned short v2:1; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu16s { unsigned long long v1:33; unsigned short v2:1; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu17i { unsigned long long v1:33; unsigned short v2:1; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu17ll { unsigned long long v1:33; unsigned short v2:1; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu1c { unsigned long long v1:33; unsigned short v2:1; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu1i { unsigned long long v1:33; unsigned short v2:1; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu1ll { unsigned long long v1:33; unsigned short v2:1; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu1s { unsigned long long v1:33; unsigned short v2:1; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu31i { unsigned long long v1:33; unsigned short v2:1; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu31ll { unsigned long long v1:33; unsigned short v2:1; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu32i { unsigned long long v1:33; unsigned short v2:1; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu32ll { unsigned long long v1:33; unsigned short v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu33 { unsigned long long v1:33; unsigned short v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu7c { unsigned long long v1:33; unsigned short v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu7i { unsigned long long v1:33; unsigned short v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu7ll { unsigned long long v1:33; unsigned short v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu7s { unsigned long long v1:33; unsigned short v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu8c { unsigned long long v1:33; unsigned short v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu8i { unsigned long long v1:33; unsigned short v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu8ll { unsigned long long v1:33; unsigned short v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu8s { unsigned long long v1:33; unsigned short v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu9i { unsigned long long v1:33; unsigned short v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu9ll { unsigned long long v1:33; unsigned short v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu1s_BFu9s { unsigned long long v1:33; unsigned short v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu1s_C { unsigned long long v1:33; unsigned short v2:1; char v3; };
struct __attribute__((packed)) aBFu33_BFu1s_D { unsigned long long v1:33; unsigned short v2:1; double v3; };
struct __attribute__((packed)) aBFu33_BFu1s_F { unsigned long long v1:33; unsigned short v2:1; float v3; };
struct __attribute__((packed)) aBFu33_BFu1s_I { unsigned long long v1:33; unsigned short v2:1; int v3; };
struct __attribute__((packed)) aBFu33_BFu1s_Ip { unsigned long long v1:33; unsigned short v2:1; int * v3; };
struct __attribute__((packed)) aBFu33_BFu1s_L { unsigned long long v1:33; unsigned short v2:1; long long v3; };
struct __attribute__((packed)) aBFu33_BFu1s_S { unsigned long long v1:33; unsigned short v2:1; short v3; };
struct __attribute__((packed)) aBFu33_BFu1s_Uc { unsigned long long v1:33; unsigned short v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu1s_Ui { unsigned long long v1:33; unsigned short v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu1s_Ul { unsigned long long v1:33; unsigned short v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu1s_Us { unsigned long long v1:33; unsigned short v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu1s_Vp { unsigned long long v1:33; unsigned short v2:1; void * v3; };
struct __attribute__((packed)) aBFu33_BFu31i { unsigned long long v1:33; unsigned int v2:31; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu15i { unsigned long long v1:33; unsigned int v2:31; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu15ll { unsigned long long v1:33; unsigned int v2:31; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu15s { unsigned long long v1:33; unsigned int v2:31; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu16i { unsigned long long v1:33; unsigned int v2:31; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu16ll { unsigned long long v1:33; unsigned int v2:31; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu16s { unsigned long long v1:33; unsigned int v2:31; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu17i { unsigned long long v1:33; unsigned int v2:31; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu17ll { unsigned long long v1:33; unsigned int v2:31; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu1c { unsigned long long v1:33; unsigned int v2:31; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu1i { unsigned long long v1:33; unsigned int v2:31; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu1ll { unsigned long long v1:33; unsigned int v2:31; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu1s { unsigned long long v1:33; unsigned int v2:31; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu31i { unsigned long long v1:33; unsigned int v2:31; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu31ll { unsigned long long v1:33; unsigned int v2:31; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu32i { unsigned long long v1:33; unsigned int v2:31; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu32ll { unsigned long long v1:33; unsigned int v2:31; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu33 { unsigned long long v1:33; unsigned int v2:31; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu7c { unsigned long long v1:33; unsigned int v2:31; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu7i { unsigned long long v1:33; unsigned int v2:31; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu7ll { unsigned long long v1:33; unsigned int v2:31; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu7s { unsigned long long v1:33; unsigned int v2:31; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu8c { unsigned long long v1:33; unsigned int v2:31; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu8i { unsigned long long v1:33; unsigned int v2:31; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu8ll { unsigned long long v1:33; unsigned int v2:31; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu8s { unsigned long long v1:33; unsigned int v2:31; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu9i { unsigned long long v1:33; unsigned int v2:31; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu9ll { unsigned long long v1:33; unsigned int v2:31; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu31i_BFu9s { unsigned long long v1:33; unsigned int v2:31; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu31i_C { unsigned long long v1:33; unsigned int v2:31; char v3; };
struct __attribute__((packed)) aBFu33_BFu31i_D { unsigned long long v1:33; unsigned int v2:31; double v3; };
struct __attribute__((packed)) aBFu33_BFu31i_F { unsigned long long v1:33; unsigned int v2:31; float v3; };
struct __attribute__((packed)) aBFu33_BFu31i_I { unsigned long long v1:33; unsigned int v2:31; int v3; };
struct __attribute__((packed)) aBFu33_BFu31i_Ip { unsigned long long v1:33; unsigned int v2:31; int * v3; };
struct __attribute__((packed)) aBFu33_BFu31i_L { unsigned long long v1:33; unsigned int v2:31; long long v3; };
struct __attribute__((packed)) aBFu33_BFu31i_S { unsigned long long v1:33; unsigned int v2:31; short v3; };
struct __attribute__((packed)) aBFu33_BFu31i_Uc { unsigned long long v1:33; unsigned int v2:31; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu31i_Ui { unsigned long long v1:33; unsigned int v2:31; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu31i_Ul { unsigned long long v1:33; unsigned int v2:31; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu31i_Us { unsigned long long v1:33; unsigned int v2:31; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu31i_Vp { unsigned long long v1:33; unsigned int v2:31; void * v3; };
struct __attribute__((packed)) aBFu33_BFu31ll { unsigned long long v1:33; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu15i { unsigned long long v1:33; unsigned long long v2:31; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu15ll { unsigned long long v1:33; unsigned long long v2:31; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu15s { unsigned long long v1:33; unsigned long long v2:31; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu16i { unsigned long long v1:33; unsigned long long v2:31; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu16ll { unsigned long long v1:33; unsigned long long v2:31; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu16s { unsigned long long v1:33; unsigned long long v2:31; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu17i { unsigned long long v1:33; unsigned long long v2:31; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu17ll { unsigned long long v1:33; unsigned long long v2:31; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu1c { unsigned long long v1:33; unsigned long long v2:31; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu1i { unsigned long long v1:33; unsigned long long v2:31; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu1ll { unsigned long long v1:33; unsigned long long v2:31; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu1s { unsigned long long v1:33; unsigned long long v2:31; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu31i { unsigned long long v1:33; unsigned long long v2:31; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu31ll { unsigned long long v1:33; unsigned long long v2:31; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu32i { unsigned long long v1:33; unsigned long long v2:31; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu32ll { unsigned long long v1:33; unsigned long long v2:31; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu33 { unsigned long long v1:33; unsigned long long v2:31; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu7c { unsigned long long v1:33; unsigned long long v2:31; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu7i { unsigned long long v1:33; unsigned long long v2:31; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu7ll { unsigned long long v1:33; unsigned long long v2:31; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu7s { unsigned long long v1:33; unsigned long long v2:31; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu8c { unsigned long long v1:33; unsigned long long v2:31; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu8i { unsigned long long v1:33; unsigned long long v2:31; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu8ll { unsigned long long v1:33; unsigned long long v2:31; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu8s { unsigned long long v1:33; unsigned long long v2:31; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu9i { unsigned long long v1:33; unsigned long long v2:31; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu9ll { unsigned long long v1:33; unsigned long long v2:31; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu31ll_BFu9s { unsigned long long v1:33; unsigned long long v2:31; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu31ll_C { unsigned long long v1:33; unsigned long long v2:31; char v3; };
struct __attribute__((packed)) aBFu33_BFu31ll_D { unsigned long long v1:33; unsigned long long v2:31; double v3; };
struct __attribute__((packed)) aBFu33_BFu31ll_F { unsigned long long v1:33; unsigned long long v2:31; float v3; };
struct __attribute__((packed)) aBFu33_BFu31ll_I { unsigned long long v1:33; unsigned long long v2:31; int v3; };
struct __attribute__((packed)) aBFu33_BFu31ll_Ip { unsigned long long v1:33; unsigned long long v2:31; int * v3; };
struct __attribute__((packed)) aBFu33_BFu31ll_L { unsigned long long v1:33; unsigned long long v2:31; long long v3; };
struct __attribute__((packed)) aBFu33_BFu31ll_S { unsigned long long v1:33; unsigned long long v2:31; short v3; };
struct __attribute__((packed)) aBFu33_BFu31ll_Uc { unsigned long long v1:33; unsigned long long v2:31; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu31ll_Ui { unsigned long long v1:33; unsigned long long v2:31; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu31ll_Ul { unsigned long long v1:33; unsigned long long v2:31; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu31ll_Us { unsigned long long v1:33; unsigned long long v2:31; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu31ll_Vp { unsigned long long v1:33; unsigned long long v2:31; void * v3; };
struct __attribute__((packed)) aBFu33_BFu32i { unsigned long long v1:33; unsigned int v2:32; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu15i { unsigned long long v1:33; unsigned int v2:32; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu15ll { unsigned long long v1:33; unsigned int v2:32; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu15s { unsigned long long v1:33; unsigned int v2:32; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu16i { unsigned long long v1:33; unsigned int v2:32; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu16ll { unsigned long long v1:33; unsigned int v2:32; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu16s { unsigned long long v1:33; unsigned int v2:32; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu17i { unsigned long long v1:33; unsigned int v2:32; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu17ll { unsigned long long v1:33; unsigned int v2:32; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu1c { unsigned long long v1:33; unsigned int v2:32; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu1i { unsigned long long v1:33; unsigned int v2:32; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu1ll { unsigned long long v1:33; unsigned int v2:32; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu1s { unsigned long long v1:33; unsigned int v2:32; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu31i { unsigned long long v1:33; unsigned int v2:32; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu31ll { unsigned long long v1:33; unsigned int v2:32; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu32i { unsigned long long v1:33; unsigned int v2:32; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu32ll { unsigned long long v1:33; unsigned int v2:32; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu33 { unsigned long long v1:33; unsigned int v2:32; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu7c { unsigned long long v1:33; unsigned int v2:32; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu7i { unsigned long long v1:33; unsigned int v2:32; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu7ll { unsigned long long v1:33; unsigned int v2:32; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu7s { unsigned long long v1:33; unsigned int v2:32; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu8c { unsigned long long v1:33; unsigned int v2:32; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu8i { unsigned long long v1:33; unsigned int v2:32; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu8ll { unsigned long long v1:33; unsigned int v2:32; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu8s { unsigned long long v1:33; unsigned int v2:32; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu9i { unsigned long long v1:33; unsigned int v2:32; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu9ll { unsigned long long v1:33; unsigned int v2:32; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu32i_BFu9s { unsigned long long v1:33; unsigned int v2:32; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu32i_C { unsigned long long v1:33; unsigned int v2:32; char v3; };
struct __attribute__((packed)) aBFu33_BFu32i_D { unsigned long long v1:33; unsigned int v2:32; double v3; };
struct __attribute__((packed)) aBFu33_BFu32i_F { unsigned long long v1:33; unsigned int v2:32; float v3; };
struct __attribute__((packed)) aBFu33_BFu32i_I { unsigned long long v1:33; unsigned int v2:32; int v3; };
struct __attribute__((packed)) aBFu33_BFu32i_Ip { unsigned long long v1:33; unsigned int v2:32; int * v3; };
struct __attribute__((packed)) aBFu33_BFu32i_L { unsigned long long v1:33; unsigned int v2:32; long long v3; };
struct __attribute__((packed)) aBFu33_BFu32i_S { unsigned long long v1:33; unsigned int v2:32; short v3; };
struct __attribute__((packed)) aBFu33_BFu32i_Uc { unsigned long long v1:33; unsigned int v2:32; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu32i_Ui { unsigned long long v1:33; unsigned int v2:32; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu32i_Ul { unsigned long long v1:33; unsigned int v2:32; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu32i_Us { unsigned long long v1:33; unsigned int v2:32; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu32i_Vp { unsigned long long v1:33; unsigned int v2:32; void * v3; };
struct __attribute__((packed)) aBFu33_BFu32ll { unsigned long long v1:33; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu15i { unsigned long long v1:33; unsigned long long v2:32; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu15ll { unsigned long long v1:33; unsigned long long v2:32; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu15s { unsigned long long v1:33; unsigned long long v2:32; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu16i { unsigned long long v1:33; unsigned long long v2:32; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu16ll { unsigned long long v1:33; unsigned long long v2:32; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu16s { unsigned long long v1:33; unsigned long long v2:32; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu17i { unsigned long long v1:33; unsigned long long v2:32; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu17ll { unsigned long long v1:33; unsigned long long v2:32; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu1c { unsigned long long v1:33; unsigned long long v2:32; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu1i { unsigned long long v1:33; unsigned long long v2:32; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu1ll { unsigned long long v1:33; unsigned long long v2:32; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu1s { unsigned long long v1:33; unsigned long long v2:32; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu31i { unsigned long long v1:33; unsigned long long v2:32; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu31ll { unsigned long long v1:33; unsigned long long v2:32; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu32i { unsigned long long v1:33; unsigned long long v2:32; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu32ll { unsigned long long v1:33; unsigned long long v2:32; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu33 { unsigned long long v1:33; unsigned long long v2:32; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu7c { unsigned long long v1:33; unsigned long long v2:32; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu7i { unsigned long long v1:33; unsigned long long v2:32; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu7ll { unsigned long long v1:33; unsigned long long v2:32; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu7s { unsigned long long v1:33; unsigned long long v2:32; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu8c { unsigned long long v1:33; unsigned long long v2:32; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu8i { unsigned long long v1:33; unsigned long long v2:32; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu8ll { unsigned long long v1:33; unsigned long long v2:32; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu8s { unsigned long long v1:33; unsigned long long v2:32; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu9i { unsigned long long v1:33; unsigned long long v2:32; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu9ll { unsigned long long v1:33; unsigned long long v2:32; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu32ll_BFu9s { unsigned long long v1:33; unsigned long long v2:32; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu32ll_C { unsigned long long v1:33; unsigned long long v2:32; char v3; };
struct __attribute__((packed)) aBFu33_BFu32ll_D { unsigned long long v1:33; unsigned long long v2:32; double v3; };
struct __attribute__((packed)) aBFu33_BFu32ll_F { unsigned long long v1:33; unsigned long long v2:32; float v3; };
struct __attribute__((packed)) aBFu33_BFu32ll_I { unsigned long long v1:33; unsigned long long v2:32; int v3; };
struct __attribute__((packed)) aBFu33_BFu32ll_Ip { unsigned long long v1:33; unsigned long long v2:32; int * v3; };
struct __attribute__((packed)) aBFu33_BFu32ll_L { unsigned long long v1:33; unsigned long long v2:32; long long v3; };
struct __attribute__((packed)) aBFu33_BFu32ll_S { unsigned long long v1:33; unsigned long long v2:32; short v3; };
struct __attribute__((packed)) aBFu33_BFu32ll_Uc { unsigned long long v1:33; unsigned long long v2:32; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu32ll_Ui { unsigned long long v1:33; unsigned long long v2:32; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu32ll_Ul { unsigned long long v1:33; unsigned long long v2:32; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu32ll_Us { unsigned long long v1:33; unsigned long long v2:32; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu32ll_Vp { unsigned long long v1:33; unsigned long long v2:32; void * v3; };
struct __attribute__((packed)) aBFu33_BFu33 { unsigned long long v1:33; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu33_BFu33_BFs33 { unsigned long long v1:33; unsigned long long v2:33; signed long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu33_BFs33_BFs33 { unsigned long long v1:33; unsigned long long v2:33; signed long long v3:33; signed long long v4:33; };
struct __attribute__((packed)) aBFu33_BFu33_BFs33_BFu33 { unsigned long long v1:33; unsigned long long v2:33; signed long long v3:33; unsigned long long v4:33; };
struct __attribute__((packed)) aBFu33_BFu33_BFu15i { unsigned long long v1:33; unsigned long long v2:33; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu33_BFu15ll { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu33_BFu15s { unsigned long long v1:33; unsigned long long v2:33; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu33_BFu16i { unsigned long long v1:33; unsigned long long v2:33; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu33_BFu16ll { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu33_BFu16s { unsigned long long v1:33; unsigned long long v2:33; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu33_BFu17i { unsigned long long v1:33; unsigned long long v2:33; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu33_BFu17ll { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu33_BFu1c { unsigned long long v1:33; unsigned long long v2:33; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu33_BFu1i { unsigned long long v1:33; unsigned long long v2:33; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu33_BFu1ll { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu33_BFu1s { unsigned long long v1:33; unsigned long long v2:33; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu33_BFu31i { unsigned long long v1:33; unsigned long long v2:33; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu33_BFu31ll { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu33_BFu32i { unsigned long long v1:33; unsigned long long v2:33; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu33_BFu32ll { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu33_BFu33 { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu33_BFu33_BFs33 { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:33; signed long long v4:33; };
struct __attribute__((packed)) aBFu33_BFu33_BFu33_BFu33 { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:33; unsigned long long v4:33; };
struct __attribute__((packed)) aBFu33_BFu33_BFu7c { unsigned long long v1:33; unsigned long long v2:33; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu33_BFu7i { unsigned long long v1:33; unsigned long long v2:33; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu33_BFu7ll { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu33_BFu7s { unsigned long long v1:33; unsigned long long v2:33; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu33_BFu8c { unsigned long long v1:33; unsigned long long v2:33; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu33_BFu8i { unsigned long long v1:33; unsigned long long v2:33; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu33_BFu8ll { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu33_BFu8s { unsigned long long v1:33; unsigned long long v2:33; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu33_BFu9i { unsigned long long v1:33; unsigned long long v2:33; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu33_BFu9ll { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu33_BFu9s { unsigned long long v1:33; unsigned long long v2:33; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu33_C { unsigned long long v1:33; unsigned long long v2:33; char v3; };
struct __attribute__((packed)) aBFu33_BFu33_D { unsigned long long v1:33; unsigned long long v2:33; double v3; };
struct __attribute__((packed)) aBFu33_BFu33_F { unsigned long long v1:33; unsigned long long v2:33; float v3; };
struct __attribute__((packed)) aBFu33_BFu33_I { unsigned long long v1:33; unsigned long long v2:33; int v3; };
struct __attribute__((packed)) aBFu33_BFu33_Ip { unsigned long long v1:33; unsigned long long v2:33; int * v3; };
struct __attribute__((packed)) aBFu33_BFu33_L { unsigned long long v1:33; unsigned long long v2:33; long long v3; };
struct __attribute__((packed)) aBFu33_BFu33_S { unsigned long long v1:33; unsigned long long v2:33; short v3; };
struct __attribute__((packed)) aBFu33_BFu33_Uc { unsigned long long v1:33; unsigned long long v2:33; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu33_Ui { unsigned long long v1:33; unsigned long long v2:33; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu33_Ul { unsigned long long v1:33; unsigned long long v2:33; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu33_Us { unsigned long long v1:33; unsigned long long v2:33; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu33_Vp { unsigned long long v1:33; unsigned long long v2:33; void * v3; };
struct __attribute__((packed)) aBFu33_BFu7c { unsigned long long v1:33; unsigned char v2:7; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu15i { unsigned long long v1:33; unsigned char v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu15ll { unsigned long long v1:33; unsigned char v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu15s { unsigned long long v1:33; unsigned char v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu16i { unsigned long long v1:33; unsigned char v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu16ll { unsigned long long v1:33; unsigned char v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu16s { unsigned long long v1:33; unsigned char v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu17i { unsigned long long v1:33; unsigned char v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu17ll { unsigned long long v1:33; unsigned char v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu1c { unsigned long long v1:33; unsigned char v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu1i { unsigned long long v1:33; unsigned char v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu1ll { unsigned long long v1:33; unsigned char v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu1s { unsigned long long v1:33; unsigned char v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu31i { unsigned long long v1:33; unsigned char v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu31ll { unsigned long long v1:33; unsigned char v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu32i { unsigned long long v1:33; unsigned char v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu32ll { unsigned long long v1:33; unsigned char v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu33 { unsigned long long v1:33; unsigned char v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu7c { unsigned long long v1:33; unsigned char v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu7i { unsigned long long v1:33; unsigned char v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu7ll { unsigned long long v1:33; unsigned char v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu7s { unsigned long long v1:33; unsigned char v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu8c { unsigned long long v1:33; unsigned char v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu8i { unsigned long long v1:33; unsigned char v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu8ll { unsigned long long v1:33; unsigned char v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu8s { unsigned long long v1:33; unsigned char v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu9i { unsigned long long v1:33; unsigned char v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu9ll { unsigned long long v1:33; unsigned char v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu7c_BFu9s { unsigned long long v1:33; unsigned char v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu7c_C { unsigned long long v1:33; unsigned char v2:7; char v3; };
struct __attribute__((packed)) aBFu33_BFu7c_D { unsigned long long v1:33; unsigned char v2:7; double v3; };
struct __attribute__((packed)) aBFu33_BFu7c_F { unsigned long long v1:33; unsigned char v2:7; float v3; };
struct __attribute__((packed)) aBFu33_BFu7c_I { unsigned long long v1:33; unsigned char v2:7; int v3; };
struct __attribute__((packed)) aBFu33_BFu7c_Ip { unsigned long long v1:33; unsigned char v2:7; int * v3; };
struct __attribute__((packed)) aBFu33_BFu7c_L { unsigned long long v1:33; unsigned char v2:7; long long v3; };
struct __attribute__((packed)) aBFu33_BFu7c_S { unsigned long long v1:33; unsigned char v2:7; short v3; };
struct __attribute__((packed)) aBFu33_BFu7c_Uc { unsigned long long v1:33; unsigned char v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu7c_Ui { unsigned long long v1:33; unsigned char v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu7c_Ul { unsigned long long v1:33; unsigned char v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu7c_Us { unsigned long long v1:33; unsigned char v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu7c_Vp { unsigned long long v1:33; unsigned char v2:7; void * v3; };
struct __attribute__((packed)) aBFu33_BFu7i { unsigned long long v1:33; unsigned int v2:7; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu15i { unsigned long long v1:33; unsigned int v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu15ll { unsigned long long v1:33; unsigned int v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu15s { unsigned long long v1:33; unsigned int v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu16i { unsigned long long v1:33; unsigned int v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu16ll { unsigned long long v1:33; unsigned int v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu16s { unsigned long long v1:33; unsigned int v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu17i { unsigned long long v1:33; unsigned int v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu17ll { unsigned long long v1:33; unsigned int v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu1c { unsigned long long v1:33; unsigned int v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu1i { unsigned long long v1:33; unsigned int v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu1ll { unsigned long long v1:33; unsigned int v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu1s { unsigned long long v1:33; unsigned int v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu31i { unsigned long long v1:33; unsigned int v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu31ll { unsigned long long v1:33; unsigned int v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu32i { unsigned long long v1:33; unsigned int v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu32ll { unsigned long long v1:33; unsigned int v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu33 { unsigned long long v1:33; unsigned int v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu7c { unsigned long long v1:33; unsigned int v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu7i { unsigned long long v1:33; unsigned int v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu7ll { unsigned long long v1:33; unsigned int v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu7s { unsigned long long v1:33; unsigned int v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu8c { unsigned long long v1:33; unsigned int v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu8i { unsigned long long v1:33; unsigned int v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu8ll { unsigned long long v1:33; unsigned int v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu8s { unsigned long long v1:33; unsigned int v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu9i { unsigned long long v1:33; unsigned int v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu9ll { unsigned long long v1:33; unsigned int v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu7i_BFu9s { unsigned long long v1:33; unsigned int v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu7i_C { unsigned long long v1:33; unsigned int v2:7; char v3; };
struct __attribute__((packed)) aBFu33_BFu7i_D { unsigned long long v1:33; unsigned int v2:7; double v3; };
struct __attribute__((packed)) aBFu33_BFu7i_F { unsigned long long v1:33; unsigned int v2:7; float v3; };
struct __attribute__((packed)) aBFu33_BFu7i_I { unsigned long long v1:33; unsigned int v2:7; int v3; };
struct __attribute__((packed)) aBFu33_BFu7i_Ip { unsigned long long v1:33; unsigned int v2:7; int * v3; };
struct __attribute__((packed)) aBFu33_BFu7i_L { unsigned long long v1:33; unsigned int v2:7; long long v3; };
struct __attribute__((packed)) aBFu33_BFu7i_S { unsigned long long v1:33; unsigned int v2:7; short v3; };
struct __attribute__((packed)) aBFu33_BFu7i_Uc { unsigned long long v1:33; unsigned int v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu7i_Ui { unsigned long long v1:33; unsigned int v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu7i_Ul { unsigned long long v1:33; unsigned int v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu7i_Us { unsigned long long v1:33; unsigned int v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu7i_Vp { unsigned long long v1:33; unsigned int v2:7; void * v3; };
struct __attribute__((packed)) aBFu33_BFu7ll { unsigned long long v1:33; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu15i { unsigned long long v1:33; unsigned long long v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu15ll { unsigned long long v1:33; unsigned long long v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu15s { unsigned long long v1:33; unsigned long long v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu16i { unsigned long long v1:33; unsigned long long v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu16ll { unsigned long long v1:33; unsigned long long v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu16s { unsigned long long v1:33; unsigned long long v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu17i { unsigned long long v1:33; unsigned long long v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu17ll { unsigned long long v1:33; unsigned long long v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu1c { unsigned long long v1:33; unsigned long long v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu1i { unsigned long long v1:33; unsigned long long v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu1ll { unsigned long long v1:33; unsigned long long v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu1s { unsigned long long v1:33; unsigned long long v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu31i { unsigned long long v1:33; unsigned long long v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu31ll { unsigned long long v1:33; unsigned long long v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu32i { unsigned long long v1:33; unsigned long long v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu32ll { unsigned long long v1:33; unsigned long long v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu33 { unsigned long long v1:33; unsigned long long v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu7c { unsigned long long v1:33; unsigned long long v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu7i { unsigned long long v1:33; unsigned long long v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu7ll { unsigned long long v1:33; unsigned long long v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu7s { unsigned long long v1:33; unsigned long long v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu8c { unsigned long long v1:33; unsigned long long v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu8i { unsigned long long v1:33; unsigned long long v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu8ll { unsigned long long v1:33; unsigned long long v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu8s { unsigned long long v1:33; unsigned long long v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu9i { unsigned long long v1:33; unsigned long long v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu9ll { unsigned long long v1:33; unsigned long long v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu7ll_BFu9s { unsigned long long v1:33; unsigned long long v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu7ll_C { unsigned long long v1:33; unsigned long long v2:7; char v3; };
struct __attribute__((packed)) aBFu33_BFu7ll_D { unsigned long long v1:33; unsigned long long v2:7; double v3; };
struct __attribute__((packed)) aBFu33_BFu7ll_F { unsigned long long v1:33; unsigned long long v2:7; float v3; };
struct __attribute__((packed)) aBFu33_BFu7ll_I { unsigned long long v1:33; unsigned long long v2:7; int v3; };
struct __attribute__((packed)) aBFu33_BFu7ll_Ip { unsigned long long v1:33; unsigned long long v2:7; int * v3; };
struct __attribute__((packed)) aBFu33_BFu7ll_L { unsigned long long v1:33; unsigned long long v2:7; long long v3; };
struct __attribute__((packed)) aBFu33_BFu7ll_S { unsigned long long v1:33; unsigned long long v2:7; short v3; };
struct __attribute__((packed)) aBFu33_BFu7ll_Uc { unsigned long long v1:33; unsigned long long v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu7ll_Ui { unsigned long long v1:33; unsigned long long v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu7ll_Ul { unsigned long long v1:33; unsigned long long v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu7ll_Us { unsigned long long v1:33; unsigned long long v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu7ll_Vp { unsigned long long v1:33; unsigned long long v2:7; void * v3; };
struct __attribute__((packed)) aBFu33_BFu7s { unsigned long long v1:33; unsigned short v2:7; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu15i { unsigned long long v1:33; unsigned short v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu15ll { unsigned long long v1:33; unsigned short v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu15s { unsigned long long v1:33; unsigned short v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu16i { unsigned long long v1:33; unsigned short v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu16ll { unsigned long long v1:33; unsigned short v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu16s { unsigned long long v1:33; unsigned short v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu17i { unsigned long long v1:33; unsigned short v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu17ll { unsigned long long v1:33; unsigned short v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu1c { unsigned long long v1:33; unsigned short v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu1i { unsigned long long v1:33; unsigned short v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu1ll { unsigned long long v1:33; unsigned short v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu1s { unsigned long long v1:33; unsigned short v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu31i { unsigned long long v1:33; unsigned short v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu31ll { unsigned long long v1:33; unsigned short v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu32i { unsigned long long v1:33; unsigned short v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu32ll { unsigned long long v1:33; unsigned short v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu33 { unsigned long long v1:33; unsigned short v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu7c { unsigned long long v1:33; unsigned short v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu7i { unsigned long long v1:33; unsigned short v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu7ll { unsigned long long v1:33; unsigned short v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu7s { unsigned long long v1:33; unsigned short v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu8c { unsigned long long v1:33; unsigned short v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu8i { unsigned long long v1:33; unsigned short v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu8ll { unsigned long long v1:33; unsigned short v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu8s { unsigned long long v1:33; unsigned short v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu9i { unsigned long long v1:33; unsigned short v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu9ll { unsigned long long v1:33; unsigned short v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu7s_BFu9s { unsigned long long v1:33; unsigned short v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu7s_C { unsigned long long v1:33; unsigned short v2:7; char v3; };
struct __attribute__((packed)) aBFu33_BFu7s_D { unsigned long long v1:33; unsigned short v2:7; double v3; };
struct __attribute__((packed)) aBFu33_BFu7s_F { unsigned long long v1:33; unsigned short v2:7; float v3; };
struct __attribute__((packed)) aBFu33_BFu7s_I { unsigned long long v1:33; unsigned short v2:7; int v3; };
struct __attribute__((packed)) aBFu33_BFu7s_Ip { unsigned long long v1:33; unsigned short v2:7; int * v3; };
struct __attribute__((packed)) aBFu33_BFu7s_L { unsigned long long v1:33; unsigned short v2:7; long long v3; };
struct __attribute__((packed)) aBFu33_BFu7s_S { unsigned long long v1:33; unsigned short v2:7; short v3; };
struct __attribute__((packed)) aBFu33_BFu7s_Uc { unsigned long long v1:33; unsigned short v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu7s_Ui { unsigned long long v1:33; unsigned short v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu7s_Ul { unsigned long long v1:33; unsigned short v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu7s_Us { unsigned long long v1:33; unsigned short v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu7s_Vp { unsigned long long v1:33; unsigned short v2:7; void * v3; };
struct __attribute__((packed)) aBFu33_BFu8c { unsigned long long v1:33; unsigned char v2:8; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu15i { unsigned long long v1:33; unsigned char v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu15ll { unsigned long long v1:33; unsigned char v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu15s { unsigned long long v1:33; unsigned char v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu16i { unsigned long long v1:33; unsigned char v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu16ll { unsigned long long v1:33; unsigned char v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu16s { unsigned long long v1:33; unsigned char v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu17i { unsigned long long v1:33; unsigned char v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu17ll { unsigned long long v1:33; unsigned char v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu1c { unsigned long long v1:33; unsigned char v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu1i { unsigned long long v1:33; unsigned char v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu1ll { unsigned long long v1:33; unsigned char v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu1s { unsigned long long v1:33; unsigned char v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu31i { unsigned long long v1:33; unsigned char v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu31ll { unsigned long long v1:33; unsigned char v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu32i { unsigned long long v1:33; unsigned char v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu32ll { unsigned long long v1:33; unsigned char v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu33 { unsigned long long v1:33; unsigned char v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu7c { unsigned long long v1:33; unsigned char v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu7i { unsigned long long v1:33; unsigned char v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu7ll { unsigned long long v1:33; unsigned char v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu7s { unsigned long long v1:33; unsigned char v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu8c { unsigned long long v1:33; unsigned char v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu8i { unsigned long long v1:33; unsigned char v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu8ll { unsigned long long v1:33; unsigned char v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu8s { unsigned long long v1:33; unsigned char v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu9i { unsigned long long v1:33; unsigned char v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu9ll { unsigned long long v1:33; unsigned char v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu8c_BFu9s { unsigned long long v1:33; unsigned char v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu8c_C { unsigned long long v1:33; unsigned char v2:8; char v3; };
struct __attribute__((packed)) aBFu33_BFu8c_D { unsigned long long v1:33; unsigned char v2:8; double v3; };
struct __attribute__((packed)) aBFu33_BFu8c_F { unsigned long long v1:33; unsigned char v2:8; float v3; };
struct __attribute__((packed)) aBFu33_BFu8c_I { unsigned long long v1:33; unsigned char v2:8; int v3; };
struct __attribute__((packed)) aBFu33_BFu8c_Ip { unsigned long long v1:33; unsigned char v2:8; int * v3; };
struct __attribute__((packed)) aBFu33_BFu8c_L { unsigned long long v1:33; unsigned char v2:8; long long v3; };
struct __attribute__((packed)) aBFu33_BFu8c_S { unsigned long long v1:33; unsigned char v2:8; short v3; };
struct __attribute__((packed)) aBFu33_BFu8c_Uc { unsigned long long v1:33; unsigned char v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu8c_Ui { unsigned long long v1:33; unsigned char v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu8c_Ul { unsigned long long v1:33; unsigned char v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu8c_Us { unsigned long long v1:33; unsigned char v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu8c_Vp { unsigned long long v1:33; unsigned char v2:8; void * v3; };
struct __attribute__((packed)) aBFu33_BFu8i { unsigned long long v1:33; unsigned int v2:8; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu15i { unsigned long long v1:33; unsigned int v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu15ll { unsigned long long v1:33; unsigned int v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu15s { unsigned long long v1:33; unsigned int v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu16i { unsigned long long v1:33; unsigned int v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu16ll { unsigned long long v1:33; unsigned int v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu16s { unsigned long long v1:33; unsigned int v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu17i { unsigned long long v1:33; unsigned int v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu17ll { unsigned long long v1:33; unsigned int v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu1c { unsigned long long v1:33; unsigned int v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu1i { unsigned long long v1:33; unsigned int v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu1ll { unsigned long long v1:33; unsigned int v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu1s { unsigned long long v1:33; unsigned int v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu31i { unsigned long long v1:33; unsigned int v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu31ll { unsigned long long v1:33; unsigned int v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu32i { unsigned long long v1:33; unsigned int v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu32ll { unsigned long long v1:33; unsigned int v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu33 { unsigned long long v1:33; unsigned int v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu7c { unsigned long long v1:33; unsigned int v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu7i { unsigned long long v1:33; unsigned int v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu7ll { unsigned long long v1:33; unsigned int v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu7s { unsigned long long v1:33; unsigned int v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu8c { unsigned long long v1:33; unsigned int v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu8i { unsigned long long v1:33; unsigned int v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu8ll { unsigned long long v1:33; unsigned int v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu8s { unsigned long long v1:33; unsigned int v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu9i { unsigned long long v1:33; unsigned int v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu9ll { unsigned long long v1:33; unsigned int v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu8i_BFu9s { unsigned long long v1:33; unsigned int v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu8i_C { unsigned long long v1:33; unsigned int v2:8; char v3; };
struct __attribute__((packed)) aBFu33_BFu8i_D { unsigned long long v1:33; unsigned int v2:8; double v3; };
struct __attribute__((packed)) aBFu33_BFu8i_F { unsigned long long v1:33; unsigned int v2:8; float v3; };
struct __attribute__((packed)) aBFu33_BFu8i_I { unsigned long long v1:33; unsigned int v2:8; int v3; };
struct __attribute__((packed)) aBFu33_BFu8i_Ip { unsigned long long v1:33; unsigned int v2:8; int * v3; };
struct __attribute__((packed)) aBFu33_BFu8i_L { unsigned long long v1:33; unsigned int v2:8; long long v3; };
struct __attribute__((packed)) aBFu33_BFu8i_S { unsigned long long v1:33; unsigned int v2:8; short v3; };
struct __attribute__((packed)) aBFu33_BFu8i_Uc { unsigned long long v1:33; unsigned int v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu8i_Ui { unsigned long long v1:33; unsigned int v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu8i_Ul { unsigned long long v1:33; unsigned int v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu8i_Us { unsigned long long v1:33; unsigned int v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu8i_Vp { unsigned long long v1:33; unsigned int v2:8; void * v3; };
struct __attribute__((packed)) aBFu33_BFu8ll { unsigned long long v1:33; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu15i { unsigned long long v1:33; unsigned long long v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu15ll { unsigned long long v1:33; unsigned long long v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu15s { unsigned long long v1:33; unsigned long long v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu16i { unsigned long long v1:33; unsigned long long v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu16ll { unsigned long long v1:33; unsigned long long v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu16s { unsigned long long v1:33; unsigned long long v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu17i { unsigned long long v1:33; unsigned long long v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu17ll { unsigned long long v1:33; unsigned long long v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu1c { unsigned long long v1:33; unsigned long long v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu1i { unsigned long long v1:33; unsigned long long v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu1ll { unsigned long long v1:33; unsigned long long v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu1s { unsigned long long v1:33; unsigned long long v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu31i { unsigned long long v1:33; unsigned long long v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu31ll { unsigned long long v1:33; unsigned long long v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu32i { unsigned long long v1:33; unsigned long long v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu32ll { unsigned long long v1:33; unsigned long long v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu33 { unsigned long long v1:33; unsigned long long v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu7c { unsigned long long v1:33; unsigned long long v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu7i { unsigned long long v1:33; unsigned long long v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu7ll { unsigned long long v1:33; unsigned long long v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu7s { unsigned long long v1:33; unsigned long long v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu8c { unsigned long long v1:33; unsigned long long v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu8i { unsigned long long v1:33; unsigned long long v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu8ll { unsigned long long v1:33; unsigned long long v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu8s { unsigned long long v1:33; unsigned long long v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu9i { unsigned long long v1:33; unsigned long long v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu9ll { unsigned long long v1:33; unsigned long long v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu8ll_BFu9s { unsigned long long v1:33; unsigned long long v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu8ll_C { unsigned long long v1:33; unsigned long long v2:8; char v3; };
struct __attribute__((packed)) aBFu33_BFu8ll_D { unsigned long long v1:33; unsigned long long v2:8; double v3; };
struct __attribute__((packed)) aBFu33_BFu8ll_F { unsigned long long v1:33; unsigned long long v2:8; float v3; };
struct __attribute__((packed)) aBFu33_BFu8ll_I { unsigned long long v1:33; unsigned long long v2:8; int v3; };
struct __attribute__((packed)) aBFu33_BFu8ll_Ip { unsigned long long v1:33; unsigned long long v2:8; int * v3; };
struct __attribute__((packed)) aBFu33_BFu8ll_L { unsigned long long v1:33; unsigned long long v2:8; long long v3; };
struct __attribute__((packed)) aBFu33_BFu8ll_S { unsigned long long v1:33; unsigned long long v2:8; short v3; };
struct __attribute__((packed)) aBFu33_BFu8ll_Uc { unsigned long long v1:33; unsigned long long v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu8ll_Ui { unsigned long long v1:33; unsigned long long v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu8ll_Ul { unsigned long long v1:33; unsigned long long v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu8ll_Us { unsigned long long v1:33; unsigned long long v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu8ll_Vp { unsigned long long v1:33; unsigned long long v2:8; void * v3; };
struct __attribute__((packed)) aBFu33_BFu8s { unsigned long long v1:33; unsigned short v2:8; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu15i { unsigned long long v1:33; unsigned short v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu15ll { unsigned long long v1:33; unsigned short v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu15s { unsigned long long v1:33; unsigned short v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu16i { unsigned long long v1:33; unsigned short v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu16ll { unsigned long long v1:33; unsigned short v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu16s { unsigned long long v1:33; unsigned short v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu17i { unsigned long long v1:33; unsigned short v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu17ll { unsigned long long v1:33; unsigned short v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu1c { unsigned long long v1:33; unsigned short v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu1i { unsigned long long v1:33; unsigned short v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu1ll { unsigned long long v1:33; unsigned short v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu1s { unsigned long long v1:33; unsigned short v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu31i { unsigned long long v1:33; unsigned short v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu31ll { unsigned long long v1:33; unsigned short v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu32i { unsigned long long v1:33; unsigned short v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu32ll { unsigned long long v1:33; unsigned short v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu33 { unsigned long long v1:33; unsigned short v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu7c { unsigned long long v1:33; unsigned short v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu7i { unsigned long long v1:33; unsigned short v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu7ll { unsigned long long v1:33; unsigned short v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu7s { unsigned long long v1:33; unsigned short v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu8c { unsigned long long v1:33; unsigned short v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu8i { unsigned long long v1:33; unsigned short v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu8ll { unsigned long long v1:33; unsigned short v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu8s { unsigned long long v1:33; unsigned short v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu9i { unsigned long long v1:33; unsigned short v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu9ll { unsigned long long v1:33; unsigned short v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu8s_BFu9s { unsigned long long v1:33; unsigned short v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu8s_C { unsigned long long v1:33; unsigned short v2:8; char v3; };
struct __attribute__((packed)) aBFu33_BFu8s_D { unsigned long long v1:33; unsigned short v2:8; double v3; };
struct __attribute__((packed)) aBFu33_BFu8s_F { unsigned long long v1:33; unsigned short v2:8; float v3; };
struct __attribute__((packed)) aBFu33_BFu8s_I { unsigned long long v1:33; unsigned short v2:8; int v3; };
struct __attribute__((packed)) aBFu33_BFu8s_Ip { unsigned long long v1:33; unsigned short v2:8; int * v3; };
struct __attribute__((packed)) aBFu33_BFu8s_L { unsigned long long v1:33; unsigned short v2:8; long long v3; };
struct __attribute__((packed)) aBFu33_BFu8s_S { unsigned long long v1:33; unsigned short v2:8; short v3; };
struct __attribute__((packed)) aBFu33_BFu8s_Uc { unsigned long long v1:33; unsigned short v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu8s_Ui { unsigned long long v1:33; unsigned short v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu8s_Ul { unsigned long long v1:33; unsigned short v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu8s_Us { unsigned long long v1:33; unsigned short v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu8s_Vp { unsigned long long v1:33; unsigned short v2:8; void * v3; };
struct __attribute__((packed)) aBFu33_BFu9i { unsigned long long v1:33; unsigned int v2:9; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu15i { unsigned long long v1:33; unsigned int v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu15ll { unsigned long long v1:33; unsigned int v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu15s { unsigned long long v1:33; unsigned int v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu16i { unsigned long long v1:33; unsigned int v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu16ll { unsigned long long v1:33; unsigned int v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu16s { unsigned long long v1:33; unsigned int v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu17i { unsigned long long v1:33; unsigned int v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu17ll { unsigned long long v1:33; unsigned int v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu1c { unsigned long long v1:33; unsigned int v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu1i { unsigned long long v1:33; unsigned int v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu1ll { unsigned long long v1:33; unsigned int v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu1s { unsigned long long v1:33; unsigned int v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu31i { unsigned long long v1:33; unsigned int v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu31ll { unsigned long long v1:33; unsigned int v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu32i { unsigned long long v1:33; unsigned int v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu32ll { unsigned long long v1:33; unsigned int v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu33 { unsigned long long v1:33; unsigned int v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu7c { unsigned long long v1:33; unsigned int v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu7i { unsigned long long v1:33; unsigned int v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu7ll { unsigned long long v1:33; unsigned int v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu7s { unsigned long long v1:33; unsigned int v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu8c { unsigned long long v1:33; unsigned int v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu8i { unsigned long long v1:33; unsigned int v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu8ll { unsigned long long v1:33; unsigned int v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu8s { unsigned long long v1:33; unsigned int v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu9i { unsigned long long v1:33; unsigned int v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu9ll { unsigned long long v1:33; unsigned int v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu9i_BFu9s { unsigned long long v1:33; unsigned int v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu9i_C { unsigned long long v1:33; unsigned int v2:9; char v3; };
struct __attribute__((packed)) aBFu33_BFu9i_D { unsigned long long v1:33; unsigned int v2:9; double v3; };
struct __attribute__((packed)) aBFu33_BFu9i_F { unsigned long long v1:33; unsigned int v2:9; float v3; };
struct __attribute__((packed)) aBFu33_BFu9i_I { unsigned long long v1:33; unsigned int v2:9; int v3; };
struct __attribute__((packed)) aBFu33_BFu9i_Ip { unsigned long long v1:33; unsigned int v2:9; int * v3; };
struct __attribute__((packed)) aBFu33_BFu9i_L { unsigned long long v1:33; unsigned int v2:9; long long v3; };
struct __attribute__((packed)) aBFu33_BFu9i_S { unsigned long long v1:33; unsigned int v2:9; short v3; };
struct __attribute__((packed)) aBFu33_BFu9i_Uc { unsigned long long v1:33; unsigned int v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu9i_Ui { unsigned long long v1:33; unsigned int v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu9i_Ul { unsigned long long v1:33; unsigned int v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu9i_Us { unsigned long long v1:33; unsigned int v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu9i_Vp { unsigned long long v1:33; unsigned int v2:9; void * v3; };
struct __attribute__((packed)) aBFu33_BFu9ll { unsigned long long v1:33; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu15i { unsigned long long v1:33; unsigned long long v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu15ll { unsigned long long v1:33; unsigned long long v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu15s { unsigned long long v1:33; unsigned long long v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu16i { unsigned long long v1:33; unsigned long long v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu16ll { unsigned long long v1:33; unsigned long long v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu16s { unsigned long long v1:33; unsigned long long v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu17i { unsigned long long v1:33; unsigned long long v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu17ll { unsigned long long v1:33; unsigned long long v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu1c { unsigned long long v1:33; unsigned long long v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu1i { unsigned long long v1:33; unsigned long long v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu1ll { unsigned long long v1:33; unsigned long long v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu1s { unsigned long long v1:33; unsigned long long v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu31i { unsigned long long v1:33; unsigned long long v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu31ll { unsigned long long v1:33; unsigned long long v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu32i { unsigned long long v1:33; unsigned long long v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu32ll { unsigned long long v1:33; unsigned long long v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu33 { unsigned long long v1:33; unsigned long long v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu7c { unsigned long long v1:33; unsigned long long v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu7i { unsigned long long v1:33; unsigned long long v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu7ll { unsigned long long v1:33; unsigned long long v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu7s { unsigned long long v1:33; unsigned long long v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu8c { unsigned long long v1:33; unsigned long long v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu8i { unsigned long long v1:33; unsigned long long v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu8ll { unsigned long long v1:33; unsigned long long v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu8s { unsigned long long v1:33; unsigned long long v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu9i { unsigned long long v1:33; unsigned long long v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu9ll { unsigned long long v1:33; unsigned long long v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu9ll_BFu9s { unsigned long long v1:33; unsigned long long v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu9ll_C { unsigned long long v1:33; unsigned long long v2:9; char v3; };
struct __attribute__((packed)) aBFu33_BFu9ll_D { unsigned long long v1:33; unsigned long long v2:9; double v3; };
struct __attribute__((packed)) aBFu33_BFu9ll_F { unsigned long long v1:33; unsigned long long v2:9; float v3; };
struct __attribute__((packed)) aBFu33_BFu9ll_I { unsigned long long v1:33; unsigned long long v2:9; int v3; };
struct __attribute__((packed)) aBFu33_BFu9ll_Ip { unsigned long long v1:33; unsigned long long v2:9; int * v3; };
struct __attribute__((packed)) aBFu33_BFu9ll_L { unsigned long long v1:33; unsigned long long v2:9; long long v3; };
struct __attribute__((packed)) aBFu33_BFu9ll_S { unsigned long long v1:33; unsigned long long v2:9; short v3; };
struct __attribute__((packed)) aBFu33_BFu9ll_Uc { unsigned long long v1:33; unsigned long long v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu9ll_Ui { unsigned long long v1:33; unsigned long long v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu9ll_Ul { unsigned long long v1:33; unsigned long long v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu9ll_Us { unsigned long long v1:33; unsigned long long v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu9ll_Vp { unsigned long long v1:33; unsigned long long v2:9; void * v3; };
struct __attribute__((packed)) aBFu33_BFu9s { unsigned long long v1:33; unsigned short v2:9; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu15i { unsigned long long v1:33; unsigned short v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu15ll { unsigned long long v1:33; unsigned short v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu15s { unsigned long long v1:33; unsigned short v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu16i { unsigned long long v1:33; unsigned short v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu16ll { unsigned long long v1:33; unsigned short v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu16s { unsigned long long v1:33; unsigned short v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu17i { unsigned long long v1:33; unsigned short v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu17ll { unsigned long long v1:33; unsigned short v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu1c { unsigned long long v1:33; unsigned short v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu1i { unsigned long long v1:33; unsigned short v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu1ll { unsigned long long v1:33; unsigned short v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu1s { unsigned long long v1:33; unsigned short v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu31i { unsigned long long v1:33; unsigned short v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu31ll { unsigned long long v1:33; unsigned short v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu32i { unsigned long long v1:33; unsigned short v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu32ll { unsigned long long v1:33; unsigned short v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu33 { unsigned long long v1:33; unsigned short v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu7c { unsigned long long v1:33; unsigned short v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu7i { unsigned long long v1:33; unsigned short v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu7ll { unsigned long long v1:33; unsigned short v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu7s { unsigned long long v1:33; unsigned short v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu8c { unsigned long long v1:33; unsigned short v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu8i { unsigned long long v1:33; unsigned short v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu8ll { unsigned long long v1:33; unsigned short v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu8s { unsigned long long v1:33; unsigned short v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu9i { unsigned long long v1:33; unsigned short v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu9ll { unsigned long long v1:33; unsigned short v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_BFu9s_BFu9s { unsigned long long v1:33; unsigned short v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_BFu9s_C { unsigned long long v1:33; unsigned short v2:9; char v3; };
struct __attribute__((packed)) aBFu33_BFu9s_D { unsigned long long v1:33; unsigned short v2:9; double v3; };
struct __attribute__((packed)) aBFu33_BFu9s_F { unsigned long long v1:33; unsigned short v2:9; float v3; };
struct __attribute__((packed)) aBFu33_BFu9s_I { unsigned long long v1:33; unsigned short v2:9; int v3; };
struct __attribute__((packed)) aBFu33_BFu9s_Ip { unsigned long long v1:33; unsigned short v2:9; int * v3; };
struct __attribute__((packed)) aBFu33_BFu9s_L { unsigned long long v1:33; unsigned short v2:9; long long v3; };
struct __attribute__((packed)) aBFu33_BFu9s_S { unsigned long long v1:33; unsigned short v2:9; short v3; };
struct __attribute__((packed)) aBFu33_BFu9s_Uc { unsigned long long v1:33; unsigned short v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu33_BFu9s_Ui { unsigned long long v1:33; unsigned short v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu33_BFu9s_Ul { unsigned long long v1:33; unsigned short v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_BFu9s_Us { unsigned long long v1:33; unsigned short v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu33_BFu9s_Vp { unsigned long long v1:33; unsigned short v2:9; void * v3; };
struct __attribute__((packed)) aBFu33_C { unsigned long long v1:33; char v2; };
struct __attribute__((packed)) aBFu33_C_BFu15i { unsigned long long v1:33; char v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_C_BFu15ll { unsigned long long v1:33; char v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_C_BFu15s { unsigned long long v1:33; char v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_C_BFu16i { unsigned long long v1:33; char v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_C_BFu16ll { unsigned long long v1:33; char v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_C_BFu16s { unsigned long long v1:33; char v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_C_BFu17i { unsigned long long v1:33; char v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_C_BFu17ll { unsigned long long v1:33; char v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_C_BFu1c { unsigned long long v1:33; char v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_C_BFu1i { unsigned long long v1:33; char v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_C_BFu1ll { unsigned long long v1:33; char v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_C_BFu1s { unsigned long long v1:33; char v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_C_BFu31i { unsigned long long v1:33; char v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_C_BFu31ll { unsigned long long v1:33; char v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_C_BFu32i { unsigned long long v1:33; char v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_C_BFu32ll { unsigned long long v1:33; char v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_C_BFu33 { unsigned long long v1:33; char v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_C_BFu7c { unsigned long long v1:33; char v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_C_BFu7i { unsigned long long v1:33; char v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_C_BFu7ll { unsigned long long v1:33; char v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_C_BFu7s { unsigned long long v1:33; char v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_C_BFu8c { unsigned long long v1:33; char v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_C_BFu8i { unsigned long long v1:33; char v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_C_BFu8ll { unsigned long long v1:33; char v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_C_BFu8s { unsigned long long v1:33; char v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_C_BFu9i { unsigned long long v1:33; char v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_C_BFu9ll { unsigned long long v1:33; char v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_C_BFu9s { unsigned long long v1:33; char v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_C_C { unsigned long long v1:33; char v2; char v3; };
struct __attribute__((packed)) aBFu33_C_D { unsigned long long v1:33; char v2; double v3; };
struct __attribute__((packed)) aBFu33_C_F { unsigned long long v1:33; char v2; float v3; };
struct __attribute__((packed)) aBFu33_C_I { unsigned long long v1:33; char v2; int v3; };
struct __attribute__((packed)) aBFu33_C_Ip { unsigned long long v1:33; char v2; int * v3; };
struct __attribute__((packed)) aBFu33_C_L { unsigned long long v1:33; char v2; long long v3; };
struct __attribute__((packed)) aBFu33_C_S { unsigned long long v1:33; char v2; short v3; };
struct __attribute__((packed)) aBFu33_C_Uc { unsigned long long v1:33; char v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_C_Ui { unsigned long long v1:33; char v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_C_Ul { unsigned long long v1:33; char v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_C_Us { unsigned long long v1:33; char v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_C_Vp { unsigned long long v1:33; char v2; void * v3; };
struct __attribute__((packed)) aBFu33_D { unsigned long long v1:33; double v2; };
struct __attribute__((packed)) aBFu33_D_BFu15i { unsigned long long v1:33; double v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_D_BFu15ll { unsigned long long v1:33; double v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_D_BFu15s { unsigned long long v1:33; double v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_D_BFu16i { unsigned long long v1:33; double v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_D_BFu16ll { unsigned long long v1:33; double v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_D_BFu16s { unsigned long long v1:33; double v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_D_BFu17i { unsigned long long v1:33; double v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_D_BFu17ll { unsigned long long v1:33; double v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_D_BFu1c { unsigned long long v1:33; double v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_D_BFu1i { unsigned long long v1:33; double v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_D_BFu1ll { unsigned long long v1:33; double v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_D_BFu1s { unsigned long long v1:33; double v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_D_BFu31i { unsigned long long v1:33; double v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_D_BFu31ll { unsigned long long v1:33; double v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_D_BFu32i { unsigned long long v1:33; double v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_D_BFu32ll { unsigned long long v1:33; double v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_D_BFu33 { unsigned long long v1:33; double v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_D_BFu7c { unsigned long long v1:33; double v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_D_BFu7i { unsigned long long v1:33; double v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_D_BFu7ll { unsigned long long v1:33; double v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_D_BFu7s { unsigned long long v1:33; double v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_D_BFu8c { unsigned long long v1:33; double v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_D_BFu8i { unsigned long long v1:33; double v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_D_BFu8ll { unsigned long long v1:33; double v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_D_BFu8s { unsigned long long v1:33; double v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_D_BFu9i { unsigned long long v1:33; double v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_D_BFu9ll { unsigned long long v1:33; double v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_D_BFu9s { unsigned long long v1:33; double v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_D_C { unsigned long long v1:33; double v2; char v3; };
struct __attribute__((packed)) aBFu33_D_D { unsigned long long v1:33; double v2; double v3; };
struct __attribute__((packed)) aBFu33_D_F { unsigned long long v1:33; double v2; float v3; };
struct __attribute__((packed)) aBFu33_D_I { unsigned long long v1:33; double v2; int v3; };
struct __attribute__((packed)) aBFu33_D_Ip { unsigned long long v1:33; double v2; int * v3; };
struct __attribute__((packed)) aBFu33_D_L { unsigned long long v1:33; double v2; long long v3; };
struct __attribute__((packed)) aBFu33_D_S { unsigned long long v1:33; double v2; short v3; };
struct __attribute__((packed)) aBFu33_D_Uc { unsigned long long v1:33; double v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_D_Ui { unsigned long long v1:33; double v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_D_Ul { unsigned long long v1:33; double v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_D_Us { unsigned long long v1:33; double v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_D_Vp { unsigned long long v1:33; double v2; void * v3; };
struct __attribute__((packed)) aBFu33_F { unsigned long long v1:33; float v2; };
struct __attribute__((packed)) aBFu33_F_BFu15i { unsigned long long v1:33; float v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_F_BFu15ll { unsigned long long v1:33; float v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_F_BFu15s { unsigned long long v1:33; float v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_F_BFu16i { unsigned long long v1:33; float v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_F_BFu16ll { unsigned long long v1:33; float v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_F_BFu16s { unsigned long long v1:33; float v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_F_BFu17i { unsigned long long v1:33; float v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_F_BFu17ll { unsigned long long v1:33; float v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_F_BFu1c { unsigned long long v1:33; float v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_F_BFu1i { unsigned long long v1:33; float v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_F_BFu1ll { unsigned long long v1:33; float v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_F_BFu1s { unsigned long long v1:33; float v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_F_BFu31i { unsigned long long v1:33; float v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_F_BFu31ll { unsigned long long v1:33; float v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_F_BFu32i { unsigned long long v1:33; float v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_F_BFu32ll { unsigned long long v1:33; float v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_F_BFu33 { unsigned long long v1:33; float v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_F_BFu7c { unsigned long long v1:33; float v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_F_BFu7i { unsigned long long v1:33; float v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_F_BFu7ll { unsigned long long v1:33; float v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_F_BFu7s { unsigned long long v1:33; float v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_F_BFu8c { unsigned long long v1:33; float v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_F_BFu8i { unsigned long long v1:33; float v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_F_BFu8ll { unsigned long long v1:33; float v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_F_BFu8s { unsigned long long v1:33; float v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_F_BFu9i { unsigned long long v1:33; float v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_F_BFu9ll { unsigned long long v1:33; float v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_F_BFu9s { unsigned long long v1:33; float v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_F_C { unsigned long long v1:33; float v2; char v3; };
struct __attribute__((packed)) aBFu33_F_D { unsigned long long v1:33; float v2; double v3; };
struct __attribute__((packed)) aBFu33_F_F { unsigned long long v1:33; float v2; float v3; };
struct __attribute__((packed)) aBFu33_F_I { unsigned long long v1:33; float v2; int v3; };
struct __attribute__((packed)) aBFu33_F_Ip { unsigned long long v1:33; float v2; int * v3; };
struct __attribute__((packed)) aBFu33_F_L { unsigned long long v1:33; float v2; long long v3; };
struct __attribute__((packed)) aBFu33_F_S { unsigned long long v1:33; float v2; short v3; };
struct __attribute__((packed)) aBFu33_F_Uc { unsigned long long v1:33; float v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_F_Ui { unsigned long long v1:33; float v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_F_Ul { unsigned long long v1:33; float v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_F_Us { unsigned long long v1:33; float v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_F_Vp { unsigned long long v1:33; float v2; void * v3; };
struct __attribute__((packed)) aBFu33_I { unsigned long long v1:33; int v2; };
struct __attribute__((packed)) aBFu33_I_BFu15i { unsigned long long v1:33; int v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_I_BFu15ll { unsigned long long v1:33; int v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_I_BFu15s { unsigned long long v1:33; int v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_I_BFu16i { unsigned long long v1:33; int v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_I_BFu16ll { unsigned long long v1:33; int v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_I_BFu16s { unsigned long long v1:33; int v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_I_BFu17i { unsigned long long v1:33; int v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_I_BFu17ll { unsigned long long v1:33; int v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_I_BFu1c { unsigned long long v1:33; int v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_I_BFu1i { unsigned long long v1:33; int v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_I_BFu1ll { unsigned long long v1:33; int v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_I_BFu1s { unsigned long long v1:33; int v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_I_BFu31i { unsigned long long v1:33; int v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_I_BFu31ll { unsigned long long v1:33; int v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_I_BFu32i { unsigned long long v1:33; int v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_I_BFu32ll { unsigned long long v1:33; int v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_I_BFu33 { unsigned long long v1:33; int v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_I_BFu7c { unsigned long long v1:33; int v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_I_BFu7i { unsigned long long v1:33; int v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_I_BFu7ll { unsigned long long v1:33; int v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_I_BFu7s { unsigned long long v1:33; int v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_I_BFu8c { unsigned long long v1:33; int v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_I_BFu8i { unsigned long long v1:33; int v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_I_BFu8ll { unsigned long long v1:33; int v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_I_BFu8s { unsigned long long v1:33; int v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_I_BFu9i { unsigned long long v1:33; int v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_I_BFu9ll { unsigned long long v1:33; int v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_I_BFu9s { unsigned long long v1:33; int v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_I_C { unsigned long long v1:33; int v2; char v3; };
struct __attribute__((packed)) aBFu33_I_D { unsigned long long v1:33; int v2; double v3; };
struct __attribute__((packed)) aBFu33_I_F { unsigned long long v1:33; int v2; float v3; };
struct __attribute__((packed)) aBFu33_I_I { unsigned long long v1:33; int v2; int v3; };
struct __attribute__((packed)) aBFu33_I_Ip { unsigned long long v1:33; int v2; int * v3; };
struct __attribute__((packed)) aBFu33_I_L { unsigned long long v1:33; int v2; long long v3; };
struct __attribute__((packed)) aBFu33_I_S { unsigned long long v1:33; int v2; short v3; };
struct __attribute__((packed)) aBFu33_I_Uc { unsigned long long v1:33; int v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_I_Ui { unsigned long long v1:33; int v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_I_Ul { unsigned long long v1:33; int v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_I_Us { unsigned long long v1:33; int v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_I_Vp { unsigned long long v1:33; int v2; void * v3; };
struct __attribute__((packed)) aBFu33_Ip { unsigned long long v1:33; int * v2; };
struct __attribute__((packed)) aBFu33_Ip_BFu15i { unsigned long long v1:33; int * v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_Ip_BFu15ll { unsigned long long v1:33; int * v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_Ip_BFu15s { unsigned long long v1:33; int * v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_Ip_BFu16i { unsigned long long v1:33; int * v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_Ip_BFu16ll { unsigned long long v1:33; int * v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_Ip_BFu16s { unsigned long long v1:33; int * v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_Ip_BFu17i { unsigned long long v1:33; int * v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_Ip_BFu17ll { unsigned long long v1:33; int * v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_Ip_BFu1c { unsigned long long v1:33; int * v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_Ip_BFu1i { unsigned long long v1:33; int * v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_Ip_BFu1ll { unsigned long long v1:33; int * v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_Ip_BFu1s { unsigned long long v1:33; int * v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_Ip_BFu31i { unsigned long long v1:33; int * v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_Ip_BFu31ll { unsigned long long v1:33; int * v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_Ip_BFu32i { unsigned long long v1:33; int * v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_Ip_BFu32ll { unsigned long long v1:33; int * v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_Ip_BFu33 { unsigned long long v1:33; int * v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_Ip_BFu7c { unsigned long long v1:33; int * v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_Ip_BFu7i { unsigned long long v1:33; int * v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_Ip_BFu7ll { unsigned long long v1:33; int * v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_Ip_BFu7s { unsigned long long v1:33; int * v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_Ip_BFu8c { unsigned long long v1:33; int * v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_Ip_BFu8i { unsigned long long v1:33; int * v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_Ip_BFu8ll { unsigned long long v1:33; int * v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_Ip_BFu8s { unsigned long long v1:33; int * v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_Ip_BFu9i { unsigned long long v1:33; int * v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_Ip_BFu9ll { unsigned long long v1:33; int * v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_Ip_BFu9s { unsigned long long v1:33; int * v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_Ip_C { unsigned long long v1:33; int * v2; char v3; };
struct __attribute__((packed)) aBFu33_Ip_D { unsigned long long v1:33; int * v2; double v3; };
struct __attribute__((packed)) aBFu33_Ip_F { unsigned long long v1:33; int * v2; float v3; };
struct __attribute__((packed)) aBFu33_Ip_I { unsigned long long v1:33; int * v2; int v3; };
struct __attribute__((packed)) aBFu33_Ip_Ip { unsigned long long v1:33; int * v2; int * v3; };
struct __attribute__((packed)) aBFu33_Ip_L { unsigned long long v1:33; int * v2; long long v3; };
struct __attribute__((packed)) aBFu33_Ip_S { unsigned long long v1:33; int * v2; short v3; };
struct __attribute__((packed)) aBFu33_Ip_Uc { unsigned long long v1:33; int * v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_Ip_Ui { unsigned long long v1:33; int * v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_Ip_Ul { unsigned long long v1:33; int * v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_Ip_Us { unsigned long long v1:33; int * v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_Ip_Vp { unsigned long long v1:33; int * v2; void * v3; };
struct __attribute__((packed)) aBFu33_L { unsigned long long v1:33; long long v2; };
struct __attribute__((packed)) aBFu33_L_BFu15i { unsigned long long v1:33; long long v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_L_BFu15ll { unsigned long long v1:33; long long v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_L_BFu15s { unsigned long long v1:33; long long v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_L_BFu16i { unsigned long long v1:33; long long v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_L_BFu16ll { unsigned long long v1:33; long long v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_L_BFu16s { unsigned long long v1:33; long long v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_L_BFu17i { unsigned long long v1:33; long long v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_L_BFu17ll { unsigned long long v1:33; long long v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_L_BFu1c { unsigned long long v1:33; long long v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_L_BFu1i { unsigned long long v1:33; long long v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_L_BFu1ll { unsigned long long v1:33; long long v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_L_BFu1s { unsigned long long v1:33; long long v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_L_BFu31i { unsigned long long v1:33; long long v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_L_BFu31ll { unsigned long long v1:33; long long v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_L_BFu32i { unsigned long long v1:33; long long v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_L_BFu32ll { unsigned long long v1:33; long long v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_L_BFu33 { unsigned long long v1:33; long long v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_L_BFu7c { unsigned long long v1:33; long long v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_L_BFu7i { unsigned long long v1:33; long long v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_L_BFu7ll { unsigned long long v1:33; long long v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_L_BFu7s { unsigned long long v1:33; long long v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_L_BFu8c { unsigned long long v1:33; long long v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_L_BFu8i { unsigned long long v1:33; long long v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_L_BFu8ll { unsigned long long v1:33; long long v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_L_BFu8s { unsigned long long v1:33; long long v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_L_BFu9i { unsigned long long v1:33; long long v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_L_BFu9ll { unsigned long long v1:33; long long v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_L_BFu9s { unsigned long long v1:33; long long v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_L_C { unsigned long long v1:33; long long v2; char v3; };
struct __attribute__((packed)) aBFu33_L_D { unsigned long long v1:33; long long v2; double v3; };
struct __attribute__((packed)) aBFu33_L_F { unsigned long long v1:33; long long v2; float v3; };
struct __attribute__((packed)) aBFu33_L_I { unsigned long long v1:33; long long v2; int v3; };
struct __attribute__((packed)) aBFu33_L_Ip { unsigned long long v1:33; long long v2; int * v3; };
struct __attribute__((packed)) aBFu33_L_L { unsigned long long v1:33; long long v2; long long v3; };
struct __attribute__((packed)) aBFu33_L_S { unsigned long long v1:33; long long v2; short v3; };
struct __attribute__((packed)) aBFu33_L_Uc { unsigned long long v1:33; long long v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_L_Ui { unsigned long long v1:33; long long v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_L_Ul { unsigned long long v1:33; long long v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_L_Us { unsigned long long v1:33; long long v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_L_Vp { unsigned long long v1:33; long long v2; void * v3; };
struct __attribute__((packed)) aBFu33_S { unsigned long long v1:33; short v2; };
struct __attribute__((packed)) aBFu33_S_BFu15i { unsigned long long v1:33; short v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_S_BFu15ll { unsigned long long v1:33; short v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_S_BFu15s { unsigned long long v1:33; short v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_S_BFu16i { unsigned long long v1:33; short v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_S_BFu16ll { unsigned long long v1:33; short v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_S_BFu16s { unsigned long long v1:33; short v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_S_BFu17i { unsigned long long v1:33; short v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_S_BFu17ll { unsigned long long v1:33; short v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_S_BFu1c { unsigned long long v1:33; short v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_S_BFu1i { unsigned long long v1:33; short v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_S_BFu1ll { unsigned long long v1:33; short v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_S_BFu1s { unsigned long long v1:33; short v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_S_BFu31i { unsigned long long v1:33; short v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_S_BFu31ll { unsigned long long v1:33; short v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_S_BFu32i { unsigned long long v1:33; short v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_S_BFu32ll { unsigned long long v1:33; short v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_S_BFu33 { unsigned long long v1:33; short v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_S_BFu7c { unsigned long long v1:33; short v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_S_BFu7i { unsigned long long v1:33; short v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_S_BFu7ll { unsigned long long v1:33; short v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_S_BFu7s { unsigned long long v1:33; short v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_S_BFu8c { unsigned long long v1:33; short v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_S_BFu8i { unsigned long long v1:33; short v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_S_BFu8ll { unsigned long long v1:33; short v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_S_BFu8s { unsigned long long v1:33; short v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_S_BFu9i { unsigned long long v1:33; short v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_S_BFu9ll { unsigned long long v1:33; short v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_S_BFu9s { unsigned long long v1:33; short v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_S_C { unsigned long long v1:33; short v2; char v3; };
struct __attribute__((packed)) aBFu33_S_D { unsigned long long v1:33; short v2; double v3; };
struct __attribute__((packed)) aBFu33_S_F { unsigned long long v1:33; short v2; float v3; };
struct __attribute__((packed)) aBFu33_S_I { unsigned long long v1:33; short v2; int v3; };
struct __attribute__((packed)) aBFu33_S_Ip { unsigned long long v1:33; short v2; int * v3; };
struct __attribute__((packed)) aBFu33_S_L { unsigned long long v1:33; short v2; long long v3; };
struct __attribute__((packed)) aBFu33_S_S { unsigned long long v1:33; short v2; short v3; };
struct __attribute__((packed)) aBFu33_S_Uc { unsigned long long v1:33; short v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_S_Ui { unsigned long long v1:33; short v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_S_Ul { unsigned long long v1:33; short v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_S_Us { unsigned long long v1:33; short v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_S_Vp { unsigned long long v1:33; short v2; void * v3; };
struct __attribute__((packed)) aBFu33_Uc { unsigned long long v1:33; unsigned char v2; };
struct __attribute__((packed)) aBFu33_Uc_BFu15i { unsigned long long v1:33; unsigned char v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_Uc_BFu15ll { unsigned long long v1:33; unsigned char v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_Uc_BFu15s { unsigned long long v1:33; unsigned char v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_Uc_BFu16i { unsigned long long v1:33; unsigned char v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_Uc_BFu16ll { unsigned long long v1:33; unsigned char v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_Uc_BFu16s { unsigned long long v1:33; unsigned char v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_Uc_BFu17i { unsigned long long v1:33; unsigned char v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_Uc_BFu17ll { unsigned long long v1:33; unsigned char v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_Uc_BFu1c { unsigned long long v1:33; unsigned char v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_Uc_BFu1i { unsigned long long v1:33; unsigned char v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_Uc_BFu1ll { unsigned long long v1:33; unsigned char v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_Uc_BFu1s { unsigned long long v1:33; unsigned char v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_Uc_BFu31i { unsigned long long v1:33; unsigned char v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_Uc_BFu31ll { unsigned long long v1:33; unsigned char v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_Uc_BFu32i { unsigned long long v1:33; unsigned char v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_Uc_BFu32ll { unsigned long long v1:33; unsigned char v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_Uc_BFu33 { unsigned long long v1:33; unsigned char v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_Uc_BFu7c { unsigned long long v1:33; unsigned char v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_Uc_BFu7i { unsigned long long v1:33; unsigned char v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_Uc_BFu7ll { unsigned long long v1:33; unsigned char v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_Uc_BFu7s { unsigned long long v1:33; unsigned char v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_Uc_BFu8c { unsigned long long v1:33; unsigned char v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_Uc_BFu8i { unsigned long long v1:33; unsigned char v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_Uc_BFu8ll { unsigned long long v1:33; unsigned char v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_Uc_BFu8s { unsigned long long v1:33; unsigned char v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_Uc_BFu9i { unsigned long long v1:33; unsigned char v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_Uc_BFu9ll { unsigned long long v1:33; unsigned char v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_Uc_BFu9s { unsigned long long v1:33; unsigned char v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_Uc_C { unsigned long long v1:33; unsigned char v2; char v3; };
struct __attribute__((packed)) aBFu33_Uc_D { unsigned long long v1:33; unsigned char v2; double v3; };
struct __attribute__((packed)) aBFu33_Uc_F { unsigned long long v1:33; unsigned char v2; float v3; };
struct __attribute__((packed)) aBFu33_Uc_I { unsigned long long v1:33; unsigned char v2; int v3; };
struct __attribute__((packed)) aBFu33_Uc_Ip { unsigned long long v1:33; unsigned char v2; int * v3; };
struct __attribute__((packed)) aBFu33_Uc_L { unsigned long long v1:33; unsigned char v2; long long v3; };
struct __attribute__((packed)) aBFu33_Uc_S { unsigned long long v1:33; unsigned char v2; short v3; };
struct __attribute__((packed)) aBFu33_Uc_Uc { unsigned long long v1:33; unsigned char v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_Uc_Ui { unsigned long long v1:33; unsigned char v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_Uc_Ul { unsigned long long v1:33; unsigned char v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_Uc_Us { unsigned long long v1:33; unsigned char v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_Uc_Vp { unsigned long long v1:33; unsigned char v2; void * v3; };
struct __attribute__((packed)) aBFu33_Ui { unsigned long long v1:33; unsigned int v2; };
struct __attribute__((packed)) aBFu33_Ui_BFu15i { unsigned long long v1:33; unsigned int v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_Ui_BFu15ll { unsigned long long v1:33; unsigned int v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_Ui_BFu15s { unsigned long long v1:33; unsigned int v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_Ui_BFu16i { unsigned long long v1:33; unsigned int v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_Ui_BFu16ll { unsigned long long v1:33; unsigned int v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_Ui_BFu16s { unsigned long long v1:33; unsigned int v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_Ui_BFu17i { unsigned long long v1:33; unsigned int v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_Ui_BFu17ll { unsigned long long v1:33; unsigned int v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_Ui_BFu1c { unsigned long long v1:33; unsigned int v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_Ui_BFu1i { unsigned long long v1:33; unsigned int v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_Ui_BFu1ll { unsigned long long v1:33; unsigned int v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_Ui_BFu1s { unsigned long long v1:33; unsigned int v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_Ui_BFu31i { unsigned long long v1:33; unsigned int v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_Ui_BFu31ll { unsigned long long v1:33; unsigned int v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_Ui_BFu32i { unsigned long long v1:33; unsigned int v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_Ui_BFu32ll { unsigned long long v1:33; unsigned int v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_Ui_BFu33 { unsigned long long v1:33; unsigned int v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_Ui_BFu7c { unsigned long long v1:33; unsigned int v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_Ui_BFu7i { unsigned long long v1:33; unsigned int v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_Ui_BFu7ll { unsigned long long v1:33; unsigned int v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_Ui_BFu7s { unsigned long long v1:33; unsigned int v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_Ui_BFu8c { unsigned long long v1:33; unsigned int v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_Ui_BFu8i { unsigned long long v1:33; unsigned int v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_Ui_BFu8ll { unsigned long long v1:33; unsigned int v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_Ui_BFu8s { unsigned long long v1:33; unsigned int v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_Ui_BFu9i { unsigned long long v1:33; unsigned int v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_Ui_BFu9ll { unsigned long long v1:33; unsigned int v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_Ui_BFu9s { unsigned long long v1:33; unsigned int v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_Ui_C { unsigned long long v1:33; unsigned int v2; char v3; };
struct __attribute__((packed)) aBFu33_Ui_D { unsigned long long v1:33; unsigned int v2; double v3; };
struct __attribute__((packed)) aBFu33_Ui_F { unsigned long long v1:33; unsigned int v2; float v3; };
struct __attribute__((packed)) aBFu33_Ui_I { unsigned long long v1:33; unsigned int v2; int v3; };
struct __attribute__((packed)) aBFu33_Ui_Ip { unsigned long long v1:33; unsigned int v2; int * v3; };
struct __attribute__((packed)) aBFu33_Ui_L { unsigned long long v1:33; unsigned int v2; long long v3; };
struct __attribute__((packed)) aBFu33_Ui_S { unsigned long long v1:33; unsigned int v2; short v3; };
struct __attribute__((packed)) aBFu33_Ui_Uc { unsigned long long v1:33; unsigned int v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_Ui_Ui { unsigned long long v1:33; unsigned int v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_Ui_Ul { unsigned long long v1:33; unsigned int v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_Ui_Us { unsigned long long v1:33; unsigned int v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_Ui_Vp { unsigned long long v1:33; unsigned int v2; void * v3; };
struct __attribute__((packed)) aBFu33_Ul { unsigned long long v1:33; unsigned long long v2; };
struct __attribute__((packed)) aBFu33_Ul_BFu15i { unsigned long long v1:33; unsigned long long v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_Ul_BFu15ll { unsigned long long v1:33; unsigned long long v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_Ul_BFu15s { unsigned long long v1:33; unsigned long long v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_Ul_BFu16i { unsigned long long v1:33; unsigned long long v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_Ul_BFu16ll { unsigned long long v1:33; unsigned long long v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_Ul_BFu16s { unsigned long long v1:33; unsigned long long v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_Ul_BFu17i { unsigned long long v1:33; unsigned long long v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_Ul_BFu17ll { unsigned long long v1:33; unsigned long long v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_Ul_BFu1c { unsigned long long v1:33; unsigned long long v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_Ul_BFu1i { unsigned long long v1:33; unsigned long long v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_Ul_BFu1ll { unsigned long long v1:33; unsigned long long v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_Ul_BFu1s { unsigned long long v1:33; unsigned long long v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_Ul_BFu31i { unsigned long long v1:33; unsigned long long v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_Ul_BFu31ll { unsigned long long v1:33; unsigned long long v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_Ul_BFu32i { unsigned long long v1:33; unsigned long long v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_Ul_BFu32ll { unsigned long long v1:33; unsigned long long v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_Ul_BFu33 { unsigned long long v1:33; unsigned long long v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_Ul_BFu7c { unsigned long long v1:33; unsigned long long v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_Ul_BFu7i { unsigned long long v1:33; unsigned long long v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_Ul_BFu7ll { unsigned long long v1:33; unsigned long long v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_Ul_BFu7s { unsigned long long v1:33; unsigned long long v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_Ul_BFu8c { unsigned long long v1:33; unsigned long long v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_Ul_BFu8i { unsigned long long v1:33; unsigned long long v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_Ul_BFu8ll { unsigned long long v1:33; unsigned long long v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_Ul_BFu8s { unsigned long long v1:33; unsigned long long v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_Ul_BFu9i { unsigned long long v1:33; unsigned long long v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_Ul_BFu9ll { unsigned long long v1:33; unsigned long long v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_Ul_BFu9s { unsigned long long v1:33; unsigned long long v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_Ul_C { unsigned long long v1:33; unsigned long long v2; char v3; };
struct __attribute__((packed)) aBFu33_Ul_D { unsigned long long v1:33; unsigned long long v2; double v3; };
struct __attribute__((packed)) aBFu33_Ul_F { unsigned long long v1:33; unsigned long long v2; float v3; };
struct __attribute__((packed)) aBFu33_Ul_I { unsigned long long v1:33; unsigned long long v2; int v3; };
struct __attribute__((packed)) aBFu33_Ul_Ip { unsigned long long v1:33; unsigned long long v2; int * v3; };
struct __attribute__((packed)) aBFu33_Ul_L { unsigned long long v1:33; unsigned long long v2; long long v3; };
struct __attribute__((packed)) aBFu33_Ul_S { unsigned long long v1:33; unsigned long long v2; short v3; };
struct __attribute__((packed)) aBFu33_Ul_Uc { unsigned long long v1:33; unsigned long long v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_Ul_Ui { unsigned long long v1:33; unsigned long long v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_Ul_Ul { unsigned long long v1:33; unsigned long long v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_Ul_Us { unsigned long long v1:33; unsigned long long v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_Ul_Vp { unsigned long long v1:33; unsigned long long v2; void * v3; };
struct __attribute__((packed)) aBFu33_Us { unsigned long long v1:33; unsigned short v2; };
struct __attribute__((packed)) aBFu33_Us_BFu15i { unsigned long long v1:33; unsigned short v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_Us_BFu15ll { unsigned long long v1:33; unsigned short v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_Us_BFu15s { unsigned long long v1:33; unsigned short v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_Us_BFu16i { unsigned long long v1:33; unsigned short v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_Us_BFu16ll { unsigned long long v1:33; unsigned short v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_Us_BFu16s { unsigned long long v1:33; unsigned short v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_Us_BFu17i { unsigned long long v1:33; unsigned short v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_Us_BFu17ll { unsigned long long v1:33; unsigned short v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_Us_BFu1c { unsigned long long v1:33; unsigned short v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_Us_BFu1i { unsigned long long v1:33; unsigned short v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_Us_BFu1ll { unsigned long long v1:33; unsigned short v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_Us_BFu1s { unsigned long long v1:33; unsigned short v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_Us_BFu31i { unsigned long long v1:33; unsigned short v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_Us_BFu31ll { unsigned long long v1:33; unsigned short v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_Us_BFu32i { unsigned long long v1:33; unsigned short v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_Us_BFu32ll { unsigned long long v1:33; unsigned short v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_Us_BFu33 { unsigned long long v1:33; unsigned short v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_Us_BFu7c { unsigned long long v1:33; unsigned short v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_Us_BFu7i { unsigned long long v1:33; unsigned short v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_Us_BFu7ll { unsigned long long v1:33; unsigned short v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_Us_BFu7s { unsigned long long v1:33; unsigned short v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_Us_BFu8c { unsigned long long v1:33; unsigned short v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_Us_BFu8i { unsigned long long v1:33; unsigned short v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_Us_BFu8ll { unsigned long long v1:33; unsigned short v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_Us_BFu8s { unsigned long long v1:33; unsigned short v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_Us_BFu9i { unsigned long long v1:33; unsigned short v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_Us_BFu9ll { unsigned long long v1:33; unsigned short v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_Us_BFu9s { unsigned long long v1:33; unsigned short v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_Us_C { unsigned long long v1:33; unsigned short v2; char v3; };
struct __attribute__((packed)) aBFu33_Us_D { unsigned long long v1:33; unsigned short v2; double v3; };
struct __attribute__((packed)) aBFu33_Us_F { unsigned long long v1:33; unsigned short v2; float v3; };
struct __attribute__((packed)) aBFu33_Us_I { unsigned long long v1:33; unsigned short v2; int v3; };
struct __attribute__((packed)) aBFu33_Us_Ip { unsigned long long v1:33; unsigned short v2; int * v3; };
struct __attribute__((packed)) aBFu33_Us_L { unsigned long long v1:33; unsigned short v2; long long v3; };
struct __attribute__((packed)) aBFu33_Us_S { unsigned long long v1:33; unsigned short v2; short v3; };
struct __attribute__((packed)) aBFu33_Us_Uc { unsigned long long v1:33; unsigned short v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_Us_Ui { unsigned long long v1:33; unsigned short v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_Us_Ul { unsigned long long v1:33; unsigned short v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_Us_Us { unsigned long long v1:33; unsigned short v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_Us_Vp { unsigned long long v1:33; unsigned short v2; void * v3; };
struct __attribute__((packed)) aBFu33_Vp { unsigned long long v1:33; void * v2; };
struct __attribute__((packed)) aBFu33_Vp_BFu15i { unsigned long long v1:33; void * v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu33_Vp_BFu15ll { unsigned long long v1:33; void * v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu33_Vp_BFu15s { unsigned long long v1:33; void * v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu33_Vp_BFu16i { unsigned long long v1:33; void * v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu33_Vp_BFu16ll { unsigned long long v1:33; void * v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu33_Vp_BFu16s { unsigned long long v1:33; void * v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu33_Vp_BFu17i { unsigned long long v1:33; void * v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu33_Vp_BFu17ll { unsigned long long v1:33; void * v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu33_Vp_BFu1c { unsigned long long v1:33; void * v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu33_Vp_BFu1i { unsigned long long v1:33; void * v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu33_Vp_BFu1ll { unsigned long long v1:33; void * v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu33_Vp_BFu1s { unsigned long long v1:33; void * v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu33_Vp_BFu31i { unsigned long long v1:33; void * v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu33_Vp_BFu31ll { unsigned long long v1:33; void * v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu33_Vp_BFu32i { unsigned long long v1:33; void * v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu33_Vp_BFu32ll { unsigned long long v1:33; void * v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu33_Vp_BFu33 { unsigned long long v1:33; void * v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu33_Vp_BFu7c { unsigned long long v1:33; void * v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu33_Vp_BFu7i { unsigned long long v1:33; void * v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu33_Vp_BFu7ll { unsigned long long v1:33; void * v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu33_Vp_BFu7s { unsigned long long v1:33; void * v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu33_Vp_BFu8c { unsigned long long v1:33; void * v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu33_Vp_BFu8i { unsigned long long v1:33; void * v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu33_Vp_BFu8ll { unsigned long long v1:33; void * v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu33_Vp_BFu8s { unsigned long long v1:33; void * v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu33_Vp_BFu9i { unsigned long long v1:33; void * v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu33_Vp_BFu9ll { unsigned long long v1:33; void * v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu33_Vp_BFu9s { unsigned long long v1:33; void * v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu33_Vp_C { unsigned long long v1:33; void * v2; char v3; };
struct __attribute__((packed)) aBFu33_Vp_D { unsigned long long v1:33; void * v2; double v3; };
struct __attribute__((packed)) aBFu33_Vp_F { unsigned long long v1:33; void * v2; float v3; };
struct __attribute__((packed)) aBFu33_Vp_I { unsigned long long v1:33; void * v2; int v3; };
struct __attribute__((packed)) aBFu33_Vp_Ip { unsigned long long v1:33; void * v2; int * v3; };
struct __attribute__((packed)) aBFu33_Vp_L { unsigned long long v1:33; void * v2; long long v3; };
struct __attribute__((packed)) aBFu33_Vp_S { unsigned long long v1:33; void * v2; short v3; };
struct __attribute__((packed)) aBFu33_Vp_Uc { unsigned long long v1:33; void * v2; unsigned char v3; };
struct __attribute__((packed)) aBFu33_Vp_Ui { unsigned long long v1:33; void * v2; unsigned int v3; };
struct __attribute__((packed)) aBFu33_Vp_Ul { unsigned long long v1:33; void * v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu33_Vp_Us { unsigned long long v1:33; void * v2; unsigned short v3; };
struct __attribute__((packed)) aBFu33_Vp_Vp { unsigned long long v1:33; void * v2; void * v3; };
struct __attribute__((packed)) aBFu63_BFs63 { unsigned long long v1:63; signed long long v2:63; };
struct __attribute__((packed)) aBFu63_BFs63_BFs63 { unsigned long long v1:63; signed long long v2:63; signed long long v3:63; };
struct __attribute__((packed)) aBFu63_BFs63_BFs63_BFs63 { unsigned long long v1:63; signed long long v2:63; signed long long v3:63; signed long long v4:63; };
struct __attribute__((packed)) aBFu63_BFs63_BFs63_BFu63 { unsigned long long v1:63; signed long long v2:63; signed long long v3:63; unsigned long long v4:63; };
struct __attribute__((packed)) aBFu63_BFs63_BFu63 { unsigned long long v1:63; signed long long v2:63; unsigned long long v3:63; };
struct __attribute__((packed)) aBFu63_BFs63_BFu63_BFs63 { unsigned long long v1:63; signed long long v2:63; unsigned long long v3:63; signed long long v4:63; };
struct __attribute__((packed)) aBFu63_BFs63_BFu63_BFu63 { unsigned long long v1:63; signed long long v2:63; unsigned long long v3:63; unsigned long long v4:63; };
struct __attribute__((packed)) aBFu63_BFu63 { unsigned long long v1:63; unsigned long long v2:63; };
struct __attribute__((packed)) aBFu63_BFu63_BFs63 { unsigned long long v1:63; unsigned long long v2:63; signed long long v3:63; };
struct __attribute__((packed)) aBFu63_BFu63_BFs63_BFs63 { unsigned long long v1:63; unsigned long long v2:63; signed long long v3:63; signed long long v4:63; };
struct __attribute__((packed)) aBFu63_BFu63_BFs63_BFu63 { unsigned long long v1:63; unsigned long long v2:63; signed long long v3:63; unsigned long long v4:63; };
struct __attribute__((packed)) aBFu63_BFu63_BFu63 { unsigned long long v1:63; unsigned long long v2:63; unsigned long long v3:63; };
struct __attribute__((packed)) aBFu63_BFu63_BFu63_BFs63 { unsigned long long v1:63; unsigned long long v2:63; unsigned long long v3:63; signed long long v4:63; };
struct __attribute__((packed)) aBFu63_BFu63_BFu63_BFu63 { unsigned long long v1:63; unsigned long long v2:63; unsigned long long v3:63; unsigned long long v4:63; };
struct __attribute__((packed)) aBFu64_BFs64 { unsigned long long v1:64; signed long long v2:64; };


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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu31i_BFu15i()
{
  {
    init_simple_test("aBFu32ll_BFu31i_BFu15i");
    static STRUCT_IF_C aBFu32ll_BFu31i_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31i_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu15i");
    set_bf_and_test(lv, v3, 7, 7, 15, 1, "aBFu32ll_BFu31i_BFu15i");
    set_bf_and_test(lv, v3, 7, 7, 15, hide_ull(1LL<<14), "aBFu32ll_BFu31i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31i_BFu15i, aBFu32ll_BFu31i_BFu15i)
//============================================================================



static void Test_aBFu32ll_BFu31i_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_BFu31i_BFu15ll");
    static STRUCT_IF_C aBFu32ll_BFu31i_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu15ll");
    set_bf_and_test(lv, v3, 7, 7, 15, 1, "aBFu32ll_BFu31i_BFu15ll");
    set_bf_and_test(lv, v3, 7, 7, 15, hide_ull(1LL<<14), "aBFu32ll_BFu31i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31i_BFu15ll, aBFu32ll_BFu31i_BFu15ll)
//============================================================================



static void Test_aBFu32ll_BFu31i_BFu15s()
{
  {
    init_simple_test("aBFu32ll_BFu31i_BFu15s");
    static STRUCT_IF_C aBFu32ll_BFu31i_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31i_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu15s");
    set_bf_and_test(lv, v3, 7, 7, 15, 1, "aBFu32ll_BFu31i_BFu15s");
    set_bf_and_test(lv, v3, 7, 7, 15, hide_ull(1LL<<14), "aBFu32ll_BFu31i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31i_BFu15s, aBFu32ll_BFu31i_BFu15s)
//============================================================================



static void Test_aBFu32ll_BFu31i_BFu16i()
{
  {
    init_simple_test("aBFu32ll_BFu31i_BFu16i");
    static STRUCT_IF_C aBFu32ll_BFu31i_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31i_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu16i");
    set_bf_and_test(lv, v3, 7, 7, 16, 1, "aBFu32ll_BFu31i_BFu16i");
    set_bf_and_test(lv, v3, 7, 7, 16, hide_ull(1LL<<15), "aBFu32ll_BFu31i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31i_BFu16i, aBFu32ll_BFu31i_BFu16i)
//============================================================================



static void Test_aBFu32ll_BFu31i_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_BFu31i_BFu16ll");
    static STRUCT_IF_C aBFu32ll_BFu31i_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu16ll");
    set_bf_and_test(lv, v3, 7, 7, 16, 1, "aBFu32ll_BFu31i_BFu16ll");
    set_bf_and_test(lv, v3, 7, 7, 16, hide_ull(1LL<<15), "aBFu32ll_BFu31i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31i_BFu16ll, aBFu32ll_BFu31i_BFu16ll)
//============================================================================



static void Test_aBFu32ll_BFu31i_BFu16s()
{
  {
    init_simple_test("aBFu32ll_BFu31i_BFu16s");
    static STRUCT_IF_C aBFu32ll_BFu31i_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31i_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu16s");
    set_bf_and_test(lv, v3, 7, 7, 16, 1, "aBFu32ll_BFu31i_BFu16s");
    set_bf_and_test(lv, v3, 7, 7, 16, hide_ull(1LL<<15), "aBFu32ll_BFu31i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31i_BFu16s, aBFu32ll_BFu31i_BFu16s)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu32ll_BFu31i_BFu31i()
{
  {
    init_simple_test("aBFu32ll_BFu31i_BFu31i");
    static STRUCT_IF_C aBFu32ll_BFu31i_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_BFu31i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu31i");
    set_bf_and_test(lv, v3, 7, 7, 31, 1, "aBFu32ll_BFu31i_BFu31i");
    set_bf_and_test(lv, v3, 7, 7, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31i_BFu31i, aBFu32ll_BFu31i_BFu31i)
//============================================================================



static void Test_aBFu32ll_BFu31i_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_BFu31i_BFu31ll");
    static STRUCT_IF_C aBFu32ll_BFu31i_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_BFu31i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu31ll");
    set_bf_and_test(lv, v3, 7, 7, 31, 1, "aBFu32ll_BFu31i_BFu31ll");
    set_bf_and_test(lv, v3, 7, 7, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31i_BFu31ll, aBFu32ll_BFu31i_BFu31ll)
//============================================================================



static void Test_aBFu32ll_BFu31i_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu31i_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu31i_BFu32i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_BFu31i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu32i");
    set_bf_and_test(lv, v3, 7, 7, 32, 1, "aBFu32ll_BFu31i_BFu32i");
    set_bf_and_test(lv, v3, 7, 7, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31i_BFu32i, aBFu32ll_BFu31i_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu31i_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu31i_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu31i_BFu32ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_BFu31i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu32ll");
    set_bf_and_test(lv, v3, 7, 7, 32, 1, "aBFu32ll_BFu31i_BFu32ll");
    set_bf_and_test(lv, v3, 7, 7, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31i_BFu32ll, aBFu32ll_BFu31i_BFu32ll)
//============================================================================



static void Test_aBFu32ll_BFu31i_BFu33()
{
  {
    init_simple_test("aBFu32ll_BFu31i_BFu33");
    static STRUCT_IF_C aBFu32ll_BFu31i_BFu33 lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_BFu31i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31i_BFu33");
    set_bf_and_test(lv, v3, 7, 7, 33, 1, "aBFu32ll_BFu31i_BFu33");
    set_bf_and_test(lv, v3, 7, 7, 33, hide_ull(1LL<<32), "aBFu32ll_BFu31i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31i_BFu33, aBFu32ll_BFu31i_BFu33)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu31ll_BFu15i()
{
  {
    init_simple_test("aBFu32ll_BFu31ll_BFu15i");
    static STRUCT_IF_C aBFu32ll_BFu31ll_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu15i");
    set_bf_and_test(lv, v3, 7, 7, 15, 1, "aBFu32ll_BFu31ll_BFu15i");
    set_bf_and_test(lv, v3, 7, 7, 15, hide_ull(1LL<<14), "aBFu32ll_BFu31ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31ll_BFu15i, aBFu32ll_BFu31ll_BFu15i)
//============================================================================



static void Test_aBFu32ll_BFu31ll_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_BFu31ll_BFu15ll");
    static STRUCT_IF_C aBFu32ll_BFu31ll_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v3, 7, 7, 15, 1, "aBFu32ll_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v3, 7, 7, 15, hide_ull(1LL<<14), "aBFu32ll_BFu31ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31ll_BFu15ll, aBFu32ll_BFu31ll_BFu15ll)
//============================================================================



static void Test_aBFu32ll_BFu31ll_BFu15s()
{
  {
    init_simple_test("aBFu32ll_BFu31ll_BFu15s");
    static STRUCT_IF_C aBFu32ll_BFu31ll_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu15s");
    set_bf_and_test(lv, v3, 7, 7, 15, 1, "aBFu32ll_BFu31ll_BFu15s");
    set_bf_and_test(lv, v3, 7, 7, 15, hide_ull(1LL<<14), "aBFu32ll_BFu31ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31ll_BFu15s, aBFu32ll_BFu31ll_BFu15s)
//============================================================================



static void Test_aBFu32ll_BFu31ll_BFu16i()
{
  {
    init_simple_test("aBFu32ll_BFu31ll_BFu16i");
    static STRUCT_IF_C aBFu32ll_BFu31ll_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu16i");
    set_bf_and_test(lv, v3, 7, 7, 16, 1, "aBFu32ll_BFu31ll_BFu16i");
    set_bf_and_test(lv, v3, 7, 7, 16, hide_ull(1LL<<15), "aBFu32ll_BFu31ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31ll_BFu16i, aBFu32ll_BFu31ll_BFu16i)
//============================================================================



static void Test_aBFu32ll_BFu31ll_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_BFu31ll_BFu16ll");
    static STRUCT_IF_C aBFu32ll_BFu31ll_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v3, 7, 7, 16, 1, "aBFu32ll_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v3, 7, 7, 16, hide_ull(1LL<<15), "aBFu32ll_BFu31ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31ll_BFu16ll, aBFu32ll_BFu31ll_BFu16ll)
//============================================================================



static void Test_aBFu32ll_BFu31ll_BFu16s()
{
  {
    init_simple_test("aBFu32ll_BFu31ll_BFu16s");
    static STRUCT_IF_C aBFu32ll_BFu31ll_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu31ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu16s");
    set_bf_and_test(lv, v3, 7, 7, 16, 1, "aBFu32ll_BFu31ll_BFu16s");
    set_bf_and_test(lv, v3, 7, 7, 16, hide_ull(1LL<<15), "aBFu32ll_BFu31ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31ll_BFu16s, aBFu32ll_BFu31ll_BFu16s)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu32ll_BFu31ll_BFu31i()
{
  {
    init_simple_test("aBFu32ll_BFu31ll_BFu31i");
    static STRUCT_IF_C aBFu32ll_BFu31ll_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_BFu31ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu31i");
    set_bf_and_test(lv, v3, 7, 7, 31, 1, "aBFu32ll_BFu31ll_BFu31i");
    set_bf_and_test(lv, v3, 7, 7, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31ll_BFu31i, aBFu32ll_BFu31ll_BFu31i)
//============================================================================



static void Test_aBFu32ll_BFu31ll_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_BFu31ll_BFu31ll");
    static STRUCT_IF_C aBFu32ll_BFu31ll_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_BFu31ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v3, 7, 7, 31, 1, "aBFu32ll_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v3, 7, 7, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31ll_BFu31ll, aBFu32ll_BFu31ll_BFu31ll)
//============================================================================



static void Test_aBFu32ll_BFu31ll_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu31ll_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu31ll_BFu32i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_BFu31ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu32i");
    set_bf_and_test(lv, v3, 7, 7, 32, 1, "aBFu32ll_BFu31ll_BFu32i");
    set_bf_and_test(lv, v3, 7, 7, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31ll_BFu32i, aBFu32ll_BFu31ll_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu31ll_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu31ll_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu31ll_BFu32ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_BFu31ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v3, 7, 7, 32, 1, "aBFu32ll_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v3, 7, 7, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31ll_BFu32ll, aBFu32ll_BFu31ll_BFu32ll)
//============================================================================



static void Test_aBFu32ll_BFu31ll_BFu33()
{
  {
    init_simple_test("aBFu32ll_BFu31ll_BFu33");
    static STRUCT_IF_C aBFu32ll_BFu31ll_BFu33 lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_BFu31ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu31ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu31ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu32ll_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu32ll_BFu31ll_BFu33");
    set_bf_and_test(lv, v3, 7, 7, 33, 1, "aBFu32ll_BFu31ll_BFu33");
    set_bf_and_test(lv, v3, 7, 7, 33, hide_ull(1LL<<32), "aBFu32ll_BFu31ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu31ll_BFu33, aBFu32ll_BFu31ll_BFu33)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu32i_BFs32i_BFs32i()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFs32i_BFs32i");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFs32i_BFs32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFs32i_BFs32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFs32i_BFs32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFs32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFs32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFs32i_BFs32i, aBFu32ll_BFu32i_BFs32i_BFs32i)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFs32i_BFs32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFs32i_BFs32ll");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFs32i_BFs32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFs32i_BFs32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFs32i_BFs32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFs32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFs32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFs32i_BFs32ll, aBFu32ll_BFu32i_BFs32i_BFs32ll)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFs32i_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFs32i_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFs32i_BFu32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFs32i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFs32i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFs32i_BFu32i, aBFu32ll_BFu32i_BFs32i_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFs32i_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFs32i_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFs32i_BFu32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFs32i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFs32i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFs32i_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFs32i_BFu32ll, aBFu32ll_BFu32i_BFs32i_BFu32ll)
//============================================================================



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



static void Test_aBFu32ll_BFu32i_BFs32ll_BFs32i()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFs32ll_BFs32i");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFs32ll_BFs32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFs32ll_BFs32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFs32ll_BFs32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFs32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFs32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFs32ll_BFs32i, aBFu32ll_BFu32i_BFs32ll_BFs32i)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFs32ll_BFs32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFs32ll_BFs32ll");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFs32ll_BFs32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFs32ll_BFs32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFs32ll_BFs32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFs32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFs32ll_BFs32ll, aBFu32ll_BFu32i_BFs32ll_BFs32ll)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFs32ll_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFs32ll_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFs32ll_BFu32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFs32ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFs32ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFs32ll_BFu32i, aBFu32ll_BFu32i_BFs32ll_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFs32ll_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFs32ll_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFs32ll_BFu32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFs32ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFs32ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFs32ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFs32ll_BFu32ll, aBFu32ll_BFu32i_BFs32ll_BFu32ll)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu15i()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu15i");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu15i");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_BFu32i_BFu15i");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_BFu32i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu15i, aBFu32ll_BFu32i_BFu15i)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu15ll");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu15ll");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_BFu32i_BFu15ll");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_BFu32i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu15ll, aBFu32ll_BFu32i_BFu15ll)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu15s()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu15s");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu15s");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_BFu32i_BFu15s");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_BFu32i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu15s, aBFu32ll_BFu32i_BFu15s)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu16i()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu16i");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu16i");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_BFu32i_BFu16i");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_BFu32i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu16i, aBFu32ll_BFu32i_BFu16i)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu16ll");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu16ll");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_BFu32i_BFu16ll");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_BFu32i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu16ll, aBFu32ll_BFu32i_BFu16ll)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu16s()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu16s");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu16s");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_BFu32i_BFu16s");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_BFu32i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu16s, aBFu32ll_BFu32i_BFu16s)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu17i()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu17i");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_BFu32i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu17i");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu32ll_BFu32i_BFu17i");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu32ll_BFu32i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu17i, aBFu32ll_BFu32i_BFu17i)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu17ll");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_BFu32i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu17ll");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu32ll_BFu32i_BFu17ll");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu32ll_BFu32i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu17ll, aBFu32ll_BFu32i_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu32i_BFu32i_BFs32i()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu32i_BFs32i");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu32i_BFs32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFu32i_BFs32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu32i_BFs32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFs32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFs32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu32i_BFs32i, aBFu32ll_BFu32i_BFu32i_BFs32i)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu32i_BFs32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu32i_BFs32ll");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu32i_BFs32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFu32i_BFs32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu32i_BFs32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFs32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFs32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu32i_BFs32ll, aBFu32ll_BFu32i_BFu32i_BFs32ll)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu32i_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu32i_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu32i_BFu32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFu32i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu32i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu32i_BFu32i, aBFu32ll_BFu32i_BFu32i_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu32i_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu32i_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu32i_BFu32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFu32i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu32i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu32i_BFu32ll, aBFu32ll_BFu32i_BFu32i_BFu32ll)
//============================================================================



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



static void Test_aBFu32ll_BFu32i_BFu32ll_BFs32i()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu32ll_BFs32i");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu32ll_BFs32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFu32ll_BFs32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu32ll_BFs32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFs32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFs32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu32ll_BFs32i, aBFu32ll_BFu32i_BFu32ll_BFs32i)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu32ll_BFs32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu32ll_BFs32ll");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu32ll_BFs32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFu32ll_BFs32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu32ll_BFs32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFs32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu32ll_BFs32ll, aBFu32ll_BFu32i_BFu32ll_BFs32ll)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu32ll_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu32ll_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu32ll_BFu32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFu32ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu32ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu32ll_BFu32i, aBFu32ll_BFu32i_BFu32ll_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu32i_BFu32ll_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32i_BFu32ll_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu32i_BFu32ll_BFu32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32i_BFu32ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32i_BFu32ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32i_BFu32ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32i_BFu32ll_BFu32ll, aBFu32ll_BFu32i_BFu32ll_BFu32ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu32ll_BFs32i_BFs32i()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFs32i_BFs32i");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFs32i_BFs32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFs32i_BFs32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFs32i_BFs32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFs32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFs32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFs32i_BFs32i, aBFu32ll_BFu32ll_BFs32i_BFs32i)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFs32i_BFs32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFs32i_BFs32ll");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFs32i_BFs32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFs32i_BFs32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFs32i_BFs32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFs32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFs32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFs32i_BFs32ll, aBFu32ll_BFu32ll_BFs32i_BFs32ll)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFs32i_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFs32i_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFs32i_BFu32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFs32i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFs32i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFs32i_BFu32i, aBFu32ll_BFu32ll_BFs32i_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFs32i_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFs32i_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFs32i_BFu32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFs32i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFs32i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32i_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFs32i_BFu32ll, aBFu32ll_BFu32ll_BFs32i_BFu32ll)
//============================================================================



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



static void Test_aBFu32ll_BFu32ll_BFs32ll_BFs32i()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFs32ll_BFs32i");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFs32ll_BFs32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFs32ll_BFs32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFs32ll_BFs32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFs32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFs32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFs32ll_BFs32i, aBFu32ll_BFu32ll_BFs32ll_BFs32i)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFs32ll_BFs32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFs32ll_BFs32ll");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFs32ll_BFs32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFs32ll_BFs32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFs32ll_BFs32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFs32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFs32ll_BFs32ll, aBFu32ll_BFu32ll_BFs32ll_BFs32ll)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFs32ll_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFs32ll_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFs32ll_BFu32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFs32ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFs32ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFs32ll_BFu32i, aBFu32ll_BFu32ll_BFs32ll_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFs32ll_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFs32ll_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFs32ll_BFu32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFs32ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFs32ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFs32ll_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFs32ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFs32ll_BFu32ll, aBFu32ll_BFu32ll_BFs32ll_BFu32ll)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu15i()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu15i");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu15i");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_BFu32ll_BFu15i");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_BFu32ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu15i, aBFu32ll_BFu32ll_BFu15i)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu15ll");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_BFu32ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu15ll, aBFu32ll_BFu32ll_BFu15ll)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu15s()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu15s");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu15s");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_BFu32ll_BFu15s");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_BFu32ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu15s, aBFu32ll_BFu32ll_BFu15s)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu16i()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu16i");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu16i");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_BFu32ll_BFu16i");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_BFu32ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu16i, aBFu32ll_BFu32ll_BFu16i)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu16ll");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_BFu32ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu16ll, aBFu32ll_BFu32ll_BFu16ll)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu16s()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu16s");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu32ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu16s");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_BFu32ll_BFu16s");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_BFu32ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu16s, aBFu32ll_BFu32ll_BFu16s)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu17i()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu17i");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_BFu32ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu17i");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu32ll_BFu32ll_BFu17i");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu32ll_BFu32ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu17i, aBFu32ll_BFu32ll_BFu17i)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu17ll");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_BFu32ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu32ll_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu32ll_BFu32ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu17ll, aBFu32ll_BFu32ll_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu32ll_BFu32i_BFs32i()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu32i_BFs32i");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu32i_BFs32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFu32i_BFs32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu32i_BFs32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFs32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFs32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu32i_BFs32i, aBFu32ll_BFu32ll_BFu32i_BFs32i)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu32i_BFs32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu32i_BFs32ll");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu32i_BFs32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFu32i_BFs32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu32i_BFs32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFs32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFs32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu32i_BFs32ll, aBFu32ll_BFu32ll_BFu32i_BFs32ll)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu32i_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu32i_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu32i_BFu32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFu32i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu32i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu32i_BFu32i, aBFu32ll_BFu32ll_BFu32i_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu32i_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu32i_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu32i_BFu32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFu32i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu32i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32i_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu32i_BFu32ll, aBFu32ll_BFu32ll_BFu32i_BFu32ll)
//============================================================================



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



static void Test_aBFu32ll_BFu32ll_BFu32ll_BFs32i()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu32ll_BFs32i");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu32ll_BFs32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFu32ll_BFs32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu32ll_BFs32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFs32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFs32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFs32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFs32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFs32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu32ll_BFs32i, aBFu32ll_BFu32ll_BFu32ll_BFs32i)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu32ll_BFs32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu32ll_BFs32ll");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu32ll_BFs32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFu32ll_BFs32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu32ll_BFs32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFs32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_sll(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFs32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu32ll_BFs32ll, aBFu32ll_BFu32ll_BFu32ll_BFs32ll)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu32ll_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu32ll_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu32ll_BFu32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFu32ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu32ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFu32i");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu32ll_BFu32i, aBFu32ll_BFu32ll_BFu32ll_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu32ll_BFu32ll_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu32ll_BFu32ll_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu32ll_BFu32ll_BFu32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_BFu32ll_BFu32ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu32ll_BFu32ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, 1, "aBFu32ll_BFu32ll_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v4, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu32ll_BFu32ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu32ll_BFu32ll_BFu32ll, aBFu32ll_BFu32ll_BFu32ll_BFu32ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu33_BFu15i()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu15i");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu33_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu15i");
    set_bf_and_test(lv, v3, 8, 1, 15, 1, "aBFu32ll_BFu33_BFu15i");
    set_bf_and_test(lv, v3, 8, 1, 15, hide_ull(1LL<<14), "aBFu32ll_BFu33_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu15i, aBFu32ll_BFu33_BFu15i)
//============================================================================



static void Test_aBFu32ll_BFu33_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu15ll");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu33_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu15ll");
    set_bf_and_test(lv, v3, 8, 1, 15, 1, "aBFu32ll_BFu33_BFu15ll");
    set_bf_and_test(lv, v3, 8, 1, 15, hide_ull(1LL<<14), "aBFu32ll_BFu33_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu15ll, aBFu32ll_BFu33_BFu15ll)
//============================================================================



static void Test_aBFu32ll_BFu33_BFu15s()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu15s");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu33_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu15s");
    set_bf_and_test(lv, v3, 8, 1, 15, 1, "aBFu32ll_BFu33_BFu15s");
    set_bf_and_test(lv, v3, 8, 1, 15, hide_ull(1LL<<14), "aBFu32ll_BFu33_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu15s, aBFu32ll_BFu33_BFu15s)
//============================================================================



static void Test_aBFu32ll_BFu33_BFu16i()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu16i");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_BFu33_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu16i");
    set_bf_and_test(lv, v3, 8, 1, 16, 1, "aBFu32ll_BFu33_BFu16i");
    set_bf_and_test(lv, v3, 8, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu33_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu16i, aBFu32ll_BFu33_BFu16i)
//============================================================================



static void Test_aBFu32ll_BFu33_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu16ll");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_BFu33_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu16ll");
    set_bf_and_test(lv, v3, 8, 1, 16, 1, "aBFu32ll_BFu33_BFu16ll");
    set_bf_and_test(lv, v3, 8, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu33_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu16ll, aBFu32ll_BFu33_BFu16ll)
//============================================================================



static void Test_aBFu32ll_BFu33_BFu16s()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu16s");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_BFu33_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu16s");
    set_bf_and_test(lv, v3, 8, 1, 16, 1, "aBFu32ll_BFu33_BFu16s");
    set_bf_and_test(lv, v3, 8, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu33_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu16s, aBFu32ll_BFu33_BFu16s)
//============================================================================



static void Test_aBFu32ll_BFu33_BFu17i()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu17i");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_BFu33_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu17i");
    set_bf_and_test(lv, v3, 8, 1, 17, 1, "aBFu32ll_BFu33_BFu17i");
    set_bf_and_test(lv, v3, 8, 1, 17, hide_ull(1LL<<16), "aBFu32ll_BFu33_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu17i, aBFu32ll_BFu33_BFu17i)
//============================================================================



static void Test_aBFu32ll_BFu33_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu17ll");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_BFu33_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu17ll");
    set_bf_and_test(lv, v3, 8, 1, 17, 1, "aBFu32ll_BFu33_BFu17ll");
    set_bf_and_test(lv, v3, 8, 1, 17, hide_ull(1LL<<16), "aBFu32ll_BFu33_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu17ll, aBFu32ll_BFu33_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu33_BFu8c()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu8c");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu33_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu8c");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu32ll_BFu33_BFu8c");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu32ll_BFu33_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu8c, aBFu32ll_BFu33_BFu8c)
//============================================================================



static void Test_aBFu32ll_BFu33_BFu8i()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu8i");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu33_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu8i");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu32ll_BFu33_BFu8i");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu32ll_BFu33_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu8i, aBFu32ll_BFu33_BFu8i)
//============================================================================



static void Test_aBFu32ll_BFu33_BFu8ll()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu8ll");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu33_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu8ll");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu32ll_BFu33_BFu8ll");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu32ll_BFu33_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu8ll, aBFu32ll_BFu33_BFu8ll)
//============================================================================



static void Test_aBFu32ll_BFu33_BFu8s()
{
  {
    init_simple_test("aBFu32ll_BFu33_BFu8s");
    static STRUCT_IF_C aBFu32ll_BFu33_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu33_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_BFu8s");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu32ll_BFu33_BFu8s");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu32ll_BFu33_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_BFu8s, aBFu32ll_BFu33_BFu8s)
//============================================================================



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



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



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



static void Test_aBFu32ll_BFu33_C()
{
  {
    init_simple_test("aBFu32ll_BFu33_C");
    static STRUCT_IF_C aBFu32ll_BFu33_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu33_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_C");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_C");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_C");
    check_field_offset(lv, v3, 9, "aBFu32ll_BFu33_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_C, aBFu32ll_BFu33_C)
//============================================================================



static void Test_aBFu32ll_BFu33_D()
{
  {
    init_simple_test("aBFu32ll_BFu33_D");
    static STRUCT_IF_C aBFu32ll_BFu33_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu32ll_BFu33_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_D");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_D");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_D");
    check_field_offset(lv, v3, 9, "aBFu32ll_BFu33_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_D, aBFu32ll_BFu33_D)
//============================================================================



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



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



static void Test_aBFu32ll_BFu33_Ip()
{
  {
    init_simple_test("aBFu32ll_BFu33_Ip");
    static STRUCT_IF_C aBFu32ll_BFu33_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu32ll_BFu33_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_Ip");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_Ip");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_Ip");
    check_field_offset(lv, v3, 9, "aBFu32ll_BFu33_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_Ip, aBFu32ll_BFu33_Ip)
//============================================================================



static void Test_aBFu32ll_BFu33_L()
{
  {
    init_simple_test("aBFu32ll_BFu33_L");
    static STRUCT_IF_C aBFu32ll_BFu33_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu32ll_BFu33_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_L");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_L");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_L");
    check_field_offset(lv, v3, 9, "aBFu32ll_BFu33_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_L, aBFu32ll_BFu33_L)
//============================================================================



static void Test_aBFu32ll_BFu33_S()
{
  {
    init_simple_test("aBFu32ll_BFu33_S");
    static STRUCT_IF_C aBFu32ll_BFu33_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_BFu33_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_S");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_S");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_S");
    check_field_offset(lv, v3, 9, "aBFu32ll_BFu33_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_S, aBFu32ll_BFu33_S)
//============================================================================



static void Test_aBFu32ll_BFu33_Uc()
{
  {
    init_simple_test("aBFu32ll_BFu33_Uc");
    static STRUCT_IF_C aBFu32ll_BFu33_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu33_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_Uc");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_Uc");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_Uc");
    check_field_offset(lv, v3, 9, "aBFu32ll_BFu33_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_Uc, aBFu32ll_BFu33_Uc)
//============================================================================



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



static void Test_aBFu32ll_BFu33_Ul()
{
  {
    init_simple_test("aBFu32ll_BFu33_Ul");
    static STRUCT_IF_C aBFu32ll_BFu33_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu32ll_BFu33_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_Ul");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_Ul");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_Ul");
    check_field_offset(lv, v3, 9, "aBFu32ll_BFu33_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_Ul, aBFu32ll_BFu33_Ul)
//============================================================================



static void Test_aBFu32ll_BFu33_Us()
{
  {
    init_simple_test("aBFu32ll_BFu33_Us");
    static STRUCT_IF_C aBFu32ll_BFu33_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_BFu33_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_Us");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_Us");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_Us");
    check_field_offset(lv, v3, 9, "aBFu32ll_BFu33_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_Us, aBFu32ll_BFu33_Us)
//============================================================================



static void Test_aBFu32ll_BFu33_Vp()
{
  {
    init_simple_test("aBFu32ll_BFu33_Vp");
    static STRUCT_IF_C aBFu32ll_BFu33_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu32ll_BFu33_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu33_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu33_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu33_Vp");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu32ll_BFu33_Vp");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu32ll_BFu33_Vp");
    check_field_offset(lv, v3, 9, "aBFu32ll_BFu33_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu33_Vp, aBFu32ll_BFu33_Vp)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu9i_BFu16i()
{
  {
    init_simple_test("aBFu32ll_BFu9i_BFu16i");
    static STRUCT_IF_C aBFu32ll_BFu9i_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9i_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu32ll_BFu9i_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu9i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9i_BFu16i, aBFu32ll_BFu9i_BFu16i)
//============================================================================



static void Test_aBFu32ll_BFu9i_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_BFu9i_BFu16ll");
    static STRUCT_IF_C aBFu32ll_BFu9i_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu32ll_BFu9i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu9i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9i_BFu16ll, aBFu32ll_BFu9i_BFu16ll)
//============================================================================



static void Test_aBFu32ll_BFu9i_BFu16s()
{
  {
    init_simple_test("aBFu32ll_BFu9i_BFu16s");
    static STRUCT_IF_C aBFu32ll_BFu9i_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9i_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu32ll_BFu9i_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu9i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9i_BFu16s, aBFu32ll_BFu9i_BFu16s)
//============================================================================



static void Test_aBFu32ll_BFu9i_BFu17i()
{
  {
    init_simple_test("aBFu32ll_BFu9i_BFu17i");
    static STRUCT_IF_C aBFu32ll_BFu9i_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu32ll_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu32ll_BFu9i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9i_BFu17i, aBFu32ll_BFu9i_BFu17i)
//============================================================================



static void Test_aBFu32ll_BFu9i_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_BFu9i_BFu17ll");
    static STRUCT_IF_C aBFu32ll_BFu9i_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu32ll_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu32ll_BFu9i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9i_BFu17ll, aBFu32ll_BFu9i_BFu17ll)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu32ll_BFu9i_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu9i_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu9i_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu9i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu32ll_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9i_BFu32i, aBFu32ll_BFu9i_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu9i_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu9i_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu9i_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu9i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu32ll_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9i_BFu32ll, aBFu32ll_BFu9i_BFu32ll)
//============================================================================



static void Test_aBFu32ll_BFu9i_BFu33()
{
  {
    init_simple_test("aBFu32ll_BFu9i_BFu33");
    static STRUCT_IF_C aBFu32ll_BFu9i_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu9i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, 1, "aBFu32ll_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, hide_ull(1LL<<32), "aBFu32ll_BFu9i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9i_BFu33, aBFu32ll_BFu9i_BFu33)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu9i_Ip()
{
  {
    init_simple_test("aBFu32ll_BFu9i_Ip");
    static STRUCT_IF_C aBFu32ll_BFu9i_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_BFu9i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_Ip");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9i_Ip");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9i_Ip");
    check_field_offset(lv, v3, 6, "aBFu32ll_BFu9i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9i_Ip, aBFu32ll_BFu9i_Ip)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu32ll_BFu9i_Vp()
{
  {
    init_simple_test("aBFu32ll_BFu9i_Vp");
    static STRUCT_IF_C aBFu32ll_BFu9i_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_BFu9i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9i_Vp");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9i_Vp");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9i_Vp");
    check_field_offset(lv, v3, 6, "aBFu32ll_BFu9i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9i_Vp, aBFu32ll_BFu9i_Vp)
//============================================================================



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



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



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



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



static void Test_aBFu32ll_BFu9ll_BFu16i()
{
  {
    init_simple_test("aBFu32ll_BFu9ll_BFu16i");
    static STRUCT_IF_C aBFu32ll_BFu9ll_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu32ll_BFu9ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu9ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9ll_BFu16i, aBFu32ll_BFu9ll_BFu16i)
//============================================================================



static void Test_aBFu32ll_BFu9ll_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_BFu9ll_BFu16ll");
    static STRUCT_IF_C aBFu32ll_BFu9ll_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu32ll_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu9ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9ll_BFu16ll, aBFu32ll_BFu9ll_BFu16ll)
//============================================================================



static void Test_aBFu32ll_BFu9ll_BFu16s()
{
  {
    init_simple_test("aBFu32ll_BFu9ll_BFu16s");
    static STRUCT_IF_C aBFu32ll_BFu9ll_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu32ll_BFu9ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu9ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9ll_BFu16s, aBFu32ll_BFu9ll_BFu16s)
//============================================================================



static void Test_aBFu32ll_BFu9ll_BFu17i()
{
  {
    init_simple_test("aBFu32ll_BFu9ll_BFu17i");
    static STRUCT_IF_C aBFu32ll_BFu9ll_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu32ll_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu32ll_BFu9ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9ll_BFu17i, aBFu32ll_BFu9ll_BFu17i)
//============================================================================



static void Test_aBFu32ll_BFu9ll_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_BFu9ll_BFu17ll");
    static STRUCT_IF_C aBFu32ll_BFu9ll_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu32ll_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu32ll_BFu9ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9ll_BFu17ll, aBFu32ll_BFu9ll_BFu17ll)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu32ll_BFu9ll_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu9ll_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu9ll_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu9ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu32ll_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9ll_BFu32i, aBFu32ll_BFu9ll_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu9ll_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu9ll_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu9ll_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu9ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu32ll_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9ll_BFu32ll, aBFu32ll_BFu9ll_BFu32ll)
//============================================================================



static void Test_aBFu32ll_BFu9ll_BFu33()
{
  {
    init_simple_test("aBFu32ll_BFu9ll_BFu33");
    static STRUCT_IF_C aBFu32ll_BFu9ll_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu9ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, 1, "aBFu32ll_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, hide_ull(1LL<<32), "aBFu32ll_BFu9ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9ll_BFu33, aBFu32ll_BFu9ll_BFu33)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu9ll_Ip()
{
  {
    init_simple_test("aBFu32ll_BFu9ll_Ip");
    static STRUCT_IF_C aBFu32ll_BFu9ll_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_BFu9ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9ll_Ip");
    check_field_offset(lv, v3, 6, "aBFu32ll_BFu9ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9ll_Ip, aBFu32ll_BFu9ll_Ip)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu32ll_BFu9ll_Vp()
{
  {
    init_simple_test("aBFu32ll_BFu9ll_Vp");
    static STRUCT_IF_C aBFu32ll_BFu9ll_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_BFu9ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9ll_Vp");
    check_field_offset(lv, v3, 6, "aBFu32ll_BFu9ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9ll_Vp, aBFu32ll_BFu9ll_Vp)
//============================================================================



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



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



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



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



static void Test_aBFu32ll_BFu9s_BFu16i()
{
  {
    init_simple_test("aBFu32ll_BFu9s_BFu16i");
    static STRUCT_IF_C aBFu32ll_BFu9s_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9s_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9s_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu32ll_BFu9s_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu9s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9s_BFu16i, aBFu32ll_BFu9s_BFu16i)
//============================================================================



static void Test_aBFu32ll_BFu9s_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_BFu9s_BFu16ll");
    static STRUCT_IF_C aBFu32ll_BFu9s_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9s_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu32ll_BFu9s_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu9s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9s_BFu16ll, aBFu32ll_BFu9s_BFu16ll)
//============================================================================



static void Test_aBFu32ll_BFu9s_BFu16s()
{
  {
    init_simple_test("aBFu32ll_BFu9s_BFu16s");
    static STRUCT_IF_C aBFu32ll_BFu9s_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9s_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9s_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu32ll_BFu9s_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu32ll_BFu9s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9s_BFu16s, aBFu32ll_BFu9s_BFu16s)
//============================================================================



static void Test_aBFu32ll_BFu9s_BFu17i()
{
  {
    init_simple_test("aBFu32ll_BFu9s_BFu17i");
    static STRUCT_IF_C aBFu32ll_BFu9s_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu32ll_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu32ll_BFu9s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9s_BFu17i, aBFu32ll_BFu9s_BFu17i)
//============================================================================



static void Test_aBFu32ll_BFu9s_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_BFu9s_BFu17ll");
    static STRUCT_IF_C aBFu32ll_BFu9s_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_BFu9s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu32ll_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu32ll_BFu9s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9s_BFu17ll, aBFu32ll_BFu9s_BFu17ll)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu32ll_BFu9s_BFu32i()
{
  {
    init_simple_test("aBFu32ll_BFu9s_BFu32i");
    static STRUCT_IF_C aBFu32ll_BFu9s_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu9s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu32ll_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9s_BFu32i, aBFu32ll_BFu9s_BFu32i)
//============================================================================



static void Test_aBFu32ll_BFu9s_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_BFu9s_BFu32ll");
    static STRUCT_IF_C aBFu32ll_BFu9s_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu9s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu32ll_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9s_BFu32ll, aBFu32ll_BFu9s_BFu32ll)
//============================================================================



static void Test_aBFu32ll_BFu9s_BFu33()
{
  {
    init_simple_test("aBFu32ll_BFu9s_BFu33");
    static STRUCT_IF_C aBFu32ll_BFu9s_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_BFu9s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, 1, "aBFu32ll_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, hide_ull(1LL<<32), "aBFu32ll_BFu9s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9s_BFu33, aBFu32ll_BFu9s_BFu33)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu32ll_BFu9s_Ip()
{
  {
    init_simple_test("aBFu32ll_BFu9s_Ip");
    static STRUCT_IF_C aBFu32ll_BFu9s_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_BFu9s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_Ip");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9s_Ip");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9s_Ip");
    check_field_offset(lv, v3, 6, "aBFu32ll_BFu9s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9s_Ip, aBFu32ll_BFu9s_Ip)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu32ll_BFu9s_Vp()
{
  {
    init_simple_test("aBFu32ll_BFu9s_Vp");
    static STRUCT_IF_C aBFu32ll_BFu9s_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_BFu9s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_BFu9s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_BFu9s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_BFu9s_Vp");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu32ll_BFu9s_Vp");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu32ll_BFu9s_Vp");
    check_field_offset(lv, v3, 6, "aBFu32ll_BFu9s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_BFu9s_Vp, aBFu32ll_BFu9s_Vp)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu32ll_D_Vp()
{
  {
    init_simple_test("aBFu32ll_D_Vp");
    static STRUCT_IF_C aBFu32ll_D_Vp lv;
    check2(sizeof(lv), ABISELECT(20,16), "sizeof(aBFu32ll_D_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_D_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_D_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_D_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_D_Vp.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_D_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_D_Vp, aBFu32ll_D_Vp)
//============================================================================



static void Test_aBFu32ll_F()
{
  {
    init_simple_test("aBFu32ll_F");
    static STRUCT_IF_C aBFu32ll_F lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F");
    check_field_offset(lv, v2, 4, "aBFu32ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F, aBFu32ll_F)
//============================================================================



static void Test_aBFu32ll_F_BFu15i()
{
  {
    init_simple_test("aBFu32ll_F_BFu15i");
    static STRUCT_IF_C aBFu32ll_F_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_F_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu15i");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu15i.v2");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_F_BFu15i");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_F_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu15i, aBFu32ll_F_BFu15i)
//============================================================================



static void Test_aBFu32ll_F_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_F_BFu15ll");
    static STRUCT_IF_C aBFu32ll_F_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_F_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu15ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu15ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_F_BFu15ll");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_F_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu15ll, aBFu32ll_F_BFu15ll)
//============================================================================



static void Test_aBFu32ll_F_BFu15s()
{
  {
    init_simple_test("aBFu32ll_F_BFu15s");
    static STRUCT_IF_C aBFu32ll_F_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_F_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu15s");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu15s.v2");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_F_BFu15s");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_F_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu15s, aBFu32ll_F_BFu15s)
//============================================================================



static void Test_aBFu32ll_F_BFu16i()
{
  {
    init_simple_test("aBFu32ll_F_BFu16i");
    static STRUCT_IF_C aBFu32ll_F_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_F_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu16i");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu16i.v2");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_F_BFu16i");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_F_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu16i, aBFu32ll_F_BFu16i)
//============================================================================



static void Test_aBFu32ll_F_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_F_BFu16ll");
    static STRUCT_IF_C aBFu32ll_F_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_F_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu16ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu16ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_F_BFu16ll");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_F_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu16ll, aBFu32ll_F_BFu16ll)
//============================================================================



static void Test_aBFu32ll_F_BFu16s()
{
  {
    init_simple_test("aBFu32ll_F_BFu16s");
    static STRUCT_IF_C aBFu32ll_F_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_F_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu16s");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu16s.v2");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_F_BFu16s");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_F_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu16s, aBFu32ll_F_BFu16s)
//============================================================================



static void Test_aBFu32ll_F_BFu17i()
{
  {
    init_simple_test("aBFu32ll_F_BFu17i");
    static STRUCT_IF_C aBFu32ll_F_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_F_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu17i");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu17i.v2");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu32ll_F_BFu17i");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu32ll_F_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu17i, aBFu32ll_F_BFu17i)
//============================================================================



static void Test_aBFu32ll_F_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_F_BFu17ll");
    static STRUCT_IF_C aBFu32ll_F_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_F_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu17ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu17ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu32ll_F_BFu17ll");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu32ll_F_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu17ll, aBFu32ll_F_BFu17ll)
//============================================================================



static void Test_aBFu32ll_F_BFu1c()
{
  {
    init_simple_test("aBFu32ll_F_BFu1c");
    static STRUCT_IF_C aBFu32ll_F_BFu1c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu1c");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu1c.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_F_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu1c, aBFu32ll_F_BFu1c)
//============================================================================



static void Test_aBFu32ll_F_BFu1i()
{
  {
    init_simple_test("aBFu32ll_F_BFu1i");
    static STRUCT_IF_C aBFu32ll_F_BFu1i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu1i");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu1i.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_F_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu1i, aBFu32ll_F_BFu1i)
//============================================================================



static void Test_aBFu32ll_F_BFu1ll()
{
  {
    init_simple_test("aBFu32ll_F_BFu1ll");
    static STRUCT_IF_C aBFu32ll_F_BFu1ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu1ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu1ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_F_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu1ll, aBFu32ll_F_BFu1ll)
//============================================================================



static void Test_aBFu32ll_F_BFu1s()
{
  {
    init_simple_test("aBFu32ll_F_BFu1s");
    static STRUCT_IF_C aBFu32ll_F_BFu1s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu1s");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu1s.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_F_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu1s, aBFu32ll_F_BFu1s)
//============================================================================



static void Test_aBFu32ll_F_BFu31i()
{
  {
    init_simple_test("aBFu32ll_F_BFu31i");
    static STRUCT_IF_C aBFu32ll_F_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_F_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu31i");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu31i.v2");
    set_bf_and_test(lv, v3, 8, 0, 31, 1, "aBFu32ll_F_BFu31i");
    set_bf_and_test(lv, v3, 8, 0, 31, hide_ull(1LL<<30), "aBFu32ll_F_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu31i, aBFu32ll_F_BFu31i)
//============================================================================



static void Test_aBFu32ll_F_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_F_BFu31ll");
    static STRUCT_IF_C aBFu32ll_F_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_F_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu31ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu31ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 31, 1, "aBFu32ll_F_BFu31ll");
    set_bf_and_test(lv, v3, 8, 0, 31, hide_ull(1LL<<30), "aBFu32ll_F_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu31ll, aBFu32ll_F_BFu31ll)
//============================================================================



static void Test_aBFu32ll_F_BFu32i()
{
  {
    init_simple_test("aBFu32ll_F_BFu32i");
    static STRUCT_IF_C aBFu32ll_F_BFu32i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_F_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu32i");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu32i.v2");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_F_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu32i, aBFu32ll_F_BFu32i)
//============================================================================



static void Test_aBFu32ll_F_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_F_BFu32ll");
    static STRUCT_IF_C aBFu32ll_F_BFu32ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_F_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu32ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu32ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_F_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu32ll, aBFu32ll_F_BFu32ll)
//============================================================================



static void Test_aBFu32ll_F_BFu33()
{
  {
    init_simple_test("aBFu32ll_F_BFu33");
    static STRUCT_IF_C aBFu32ll_F_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_F_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu33");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu33.v2");
    set_bf_and_test(lv, v3, 8, 0, 33, 1, "aBFu32ll_F_BFu33");
    set_bf_and_test(lv, v3, 8, 0, 33, hide_ull(1LL<<32), "aBFu32ll_F_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu33, aBFu32ll_F_BFu33)
//============================================================================



static void Test_aBFu32ll_F_BFu7c()
{
  {
    init_simple_test("aBFu32ll_F_BFu7c");
    static STRUCT_IF_C aBFu32ll_F_BFu7c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu7c");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu7c.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_F_BFu7c");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_F_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu7c, aBFu32ll_F_BFu7c)
//============================================================================



static void Test_aBFu32ll_F_BFu7i()
{
  {
    init_simple_test("aBFu32ll_F_BFu7i");
    static STRUCT_IF_C aBFu32ll_F_BFu7i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu7i");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu7i.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_F_BFu7i");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_F_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu7i, aBFu32ll_F_BFu7i)
//============================================================================



static void Test_aBFu32ll_F_BFu7ll()
{
  {
    init_simple_test("aBFu32ll_F_BFu7ll");
    static STRUCT_IF_C aBFu32ll_F_BFu7ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu7ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu7ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_F_BFu7ll");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_F_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu7ll, aBFu32ll_F_BFu7ll)
//============================================================================



static void Test_aBFu32ll_F_BFu7s()
{
  {
    init_simple_test("aBFu32ll_F_BFu7s");
    static STRUCT_IF_C aBFu32ll_F_BFu7s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu7s");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu7s.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_F_BFu7s");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_F_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu7s, aBFu32ll_F_BFu7s)
//============================================================================



static void Test_aBFu32ll_F_BFu8c()
{
  {
    init_simple_test("aBFu32ll_F_BFu8c");
    static STRUCT_IF_C aBFu32ll_F_BFu8c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu8c");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu8c.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_F_BFu8c");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_F_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu8c, aBFu32ll_F_BFu8c)
//============================================================================



static void Test_aBFu32ll_F_BFu8i()
{
  {
    init_simple_test("aBFu32ll_F_BFu8i");
    static STRUCT_IF_C aBFu32ll_F_BFu8i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu8i");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu8i.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_F_BFu8i");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_F_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu8i, aBFu32ll_F_BFu8i)
//============================================================================



static void Test_aBFu32ll_F_BFu8ll()
{
  {
    init_simple_test("aBFu32ll_F_BFu8ll");
    static STRUCT_IF_C aBFu32ll_F_BFu8ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu8ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu8ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_F_BFu8ll");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_F_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu8ll, aBFu32ll_F_BFu8ll)
//============================================================================



static void Test_aBFu32ll_F_BFu8s()
{
  {
    init_simple_test("aBFu32ll_F_BFu8s");
    static STRUCT_IF_C aBFu32ll_F_BFu8s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu8s");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu8s.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_F_BFu8s");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_F_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu8s, aBFu32ll_F_BFu8s)
//============================================================================



static void Test_aBFu32ll_F_BFu9i()
{
  {
    init_simple_test("aBFu32ll_F_BFu9i");
    static STRUCT_IF_C aBFu32ll_F_BFu9i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_F_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu9i");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu9i.v2");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu32ll_F_BFu9i");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu32ll_F_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu9i, aBFu32ll_F_BFu9i)
//============================================================================



static void Test_aBFu32ll_F_BFu9ll()
{
  {
    init_simple_test("aBFu32ll_F_BFu9ll");
    static STRUCT_IF_C aBFu32ll_F_BFu9ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_F_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu9ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu9ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu32ll_F_BFu9ll");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu32ll_F_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu9ll, aBFu32ll_F_BFu9ll)
//============================================================================



static void Test_aBFu32ll_F_BFu9s()
{
  {
    init_simple_test("aBFu32ll_F_BFu9s");
    static STRUCT_IF_C aBFu32ll_F_BFu9s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_F_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_BFu9s");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_BFu9s.v2");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu32ll_F_BFu9s");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu32ll_F_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_BFu9s, aBFu32ll_F_BFu9s)
//============================================================================



static void Test_aBFu32ll_F_C()
{
  {
    init_simple_test("aBFu32ll_F_C");
    static STRUCT_IF_C aBFu32ll_F_C lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_C");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_C.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_C, aBFu32ll_F_C)
//============================================================================



static void Test_aBFu32ll_F_D()
{
  {
    init_simple_test("aBFu32ll_F_D");
    static STRUCT_IF_C aBFu32ll_F_D lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_F_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_D");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_D.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_D, aBFu32ll_F_D)
//============================================================================



static void Test_aBFu32ll_F_F()
{
  {
    init_simple_test("aBFu32ll_F_F");
    static STRUCT_IF_C aBFu32ll_F_F lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_F_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_F");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_F.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_F, aBFu32ll_F_F)
//============================================================================



static void Test_aBFu32ll_F_I()
{
  {
    init_simple_test("aBFu32ll_F_I");
    static STRUCT_IF_C aBFu32ll_F_I lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_F_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_I");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_I.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_I, aBFu32ll_F_I)
//============================================================================



static void Test_aBFu32ll_F_Ip()
{
  {
    init_simple_test("aBFu32ll_F_Ip");
    static STRUCT_IF_C aBFu32ll_F_Ip lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_F_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_Ip");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_Ip.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_Ip, aBFu32ll_F_Ip)
//============================================================================



static void Test_aBFu32ll_F_L()
{
  {
    init_simple_test("aBFu32ll_F_L");
    static STRUCT_IF_C aBFu32ll_F_L lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_F_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_L");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_L.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_L, aBFu32ll_F_L)
//============================================================================



static void Test_aBFu32ll_F_S()
{
  {
    init_simple_test("aBFu32ll_F_S");
    static STRUCT_IF_C aBFu32ll_F_S lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_F_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_S");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_S.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_S, aBFu32ll_F_S)
//============================================================================



static void Test_aBFu32ll_F_Uc()
{
  {
    init_simple_test("aBFu32ll_F_Uc");
    static STRUCT_IF_C aBFu32ll_F_Uc lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_F_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_Uc");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_Uc.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_Uc, aBFu32ll_F_Uc)
//============================================================================



static void Test_aBFu32ll_F_Ui()
{
  {
    init_simple_test("aBFu32ll_F_Ui");
    static STRUCT_IF_C aBFu32ll_F_Ui lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_F_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_Ui");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_Ui.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_Ui, aBFu32ll_F_Ui)
//============================================================================



static void Test_aBFu32ll_F_Ul()
{
  {
    init_simple_test("aBFu32ll_F_Ul");
    static STRUCT_IF_C aBFu32ll_F_Ul lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_F_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_Ul");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_Ul.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_Ul, aBFu32ll_F_Ul)
//============================================================================



static void Test_aBFu32ll_F_Us()
{
  {
    init_simple_test("aBFu32ll_F_Us");
    static STRUCT_IF_C aBFu32ll_F_Us lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_F_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_Us");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_Us.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_Us, aBFu32ll_F_Us)
//============================================================================



static void Test_aBFu32ll_F_Vp()
{
  {
    init_simple_test("aBFu32ll_F_Vp");
    static STRUCT_IF_C aBFu32ll_F_Vp lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_F_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_F_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_F_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_F_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_F_Vp.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_F_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_F_Vp, aBFu32ll_F_Vp)
//============================================================================



static void Test_aBFu32ll_I()
{
  {
    init_simple_test("aBFu32ll_I");
    static STRUCT_IF_C aBFu32ll_I lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I");
    check_field_offset(lv, v2, 4, "aBFu32ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I, aBFu32ll_I)
//============================================================================



static void Test_aBFu32ll_I_BFu15i()
{
  {
    init_simple_test("aBFu32ll_I_BFu15i");
    static STRUCT_IF_C aBFu32ll_I_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_I_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu15i");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu15i.v2");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_I_BFu15i");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_I_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu15i, aBFu32ll_I_BFu15i)
//============================================================================



static void Test_aBFu32ll_I_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_I_BFu15ll");
    static STRUCT_IF_C aBFu32ll_I_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_I_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu15ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu15ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_I_BFu15ll");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_I_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu15ll, aBFu32ll_I_BFu15ll)
//============================================================================



static void Test_aBFu32ll_I_BFu15s()
{
  {
    init_simple_test("aBFu32ll_I_BFu15s");
    static STRUCT_IF_C aBFu32ll_I_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_I_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu15s");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu15s.v2");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_I_BFu15s");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_I_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu15s, aBFu32ll_I_BFu15s)
//============================================================================



static void Test_aBFu32ll_I_BFu16i()
{
  {
    init_simple_test("aBFu32ll_I_BFu16i");
    static STRUCT_IF_C aBFu32ll_I_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_I_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu16i");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu16i.v2");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_I_BFu16i");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_I_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu16i, aBFu32ll_I_BFu16i)
//============================================================================



static void Test_aBFu32ll_I_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_I_BFu16ll");
    static STRUCT_IF_C aBFu32ll_I_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_I_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu16ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu16ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_I_BFu16ll");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_I_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu16ll, aBFu32ll_I_BFu16ll)
//============================================================================



static void Test_aBFu32ll_I_BFu16s()
{
  {
    init_simple_test("aBFu32ll_I_BFu16s");
    static STRUCT_IF_C aBFu32ll_I_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_I_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu16s");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu16s.v2");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_I_BFu16s");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_I_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu16s, aBFu32ll_I_BFu16s)
//============================================================================



static void Test_aBFu32ll_I_BFu17i()
{
  {
    init_simple_test("aBFu32ll_I_BFu17i");
    static STRUCT_IF_C aBFu32ll_I_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_I_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu17i");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu17i.v2");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu32ll_I_BFu17i");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu32ll_I_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu17i, aBFu32ll_I_BFu17i)
//============================================================================



static void Test_aBFu32ll_I_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_I_BFu17ll");
    static STRUCT_IF_C aBFu32ll_I_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_I_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu17ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu17ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu32ll_I_BFu17ll");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu32ll_I_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu17ll, aBFu32ll_I_BFu17ll)
//============================================================================



static void Test_aBFu32ll_I_BFu1c()
{
  {
    init_simple_test("aBFu32ll_I_BFu1c");
    static STRUCT_IF_C aBFu32ll_I_BFu1c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu1c");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu1c.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_I_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu1c, aBFu32ll_I_BFu1c)
//============================================================================



static void Test_aBFu32ll_I_BFu1i()
{
  {
    init_simple_test("aBFu32ll_I_BFu1i");
    static STRUCT_IF_C aBFu32ll_I_BFu1i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu1i");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu1i.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_I_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu1i, aBFu32ll_I_BFu1i)
//============================================================================



static void Test_aBFu32ll_I_BFu1ll()
{
  {
    init_simple_test("aBFu32ll_I_BFu1ll");
    static STRUCT_IF_C aBFu32ll_I_BFu1ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu1ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu1ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_I_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu1ll, aBFu32ll_I_BFu1ll)
//============================================================================



static void Test_aBFu32ll_I_BFu1s()
{
  {
    init_simple_test("aBFu32ll_I_BFu1s");
    static STRUCT_IF_C aBFu32ll_I_BFu1s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu1s");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu1s.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_I_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu1s, aBFu32ll_I_BFu1s)
//============================================================================



static void Test_aBFu32ll_I_BFu31i()
{
  {
    init_simple_test("aBFu32ll_I_BFu31i");
    static STRUCT_IF_C aBFu32ll_I_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_I_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu31i");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu31i.v2");
    set_bf_and_test(lv, v3, 8, 0, 31, 1, "aBFu32ll_I_BFu31i");
    set_bf_and_test(lv, v3, 8, 0, 31, hide_ull(1LL<<30), "aBFu32ll_I_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu31i, aBFu32ll_I_BFu31i)
//============================================================================



static void Test_aBFu32ll_I_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_I_BFu31ll");
    static STRUCT_IF_C aBFu32ll_I_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_I_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu31ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu31ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 31, 1, "aBFu32ll_I_BFu31ll");
    set_bf_and_test(lv, v3, 8, 0, 31, hide_ull(1LL<<30), "aBFu32ll_I_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu31ll, aBFu32ll_I_BFu31ll)
//============================================================================



static void Test_aBFu32ll_I_BFu32i()
{
  {
    init_simple_test("aBFu32ll_I_BFu32i");
    static STRUCT_IF_C aBFu32ll_I_BFu32i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_I_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu32i");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu32i.v2");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_I_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu32i, aBFu32ll_I_BFu32i)
//============================================================================



static void Test_aBFu32ll_I_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_I_BFu32ll");
    static STRUCT_IF_C aBFu32ll_I_BFu32ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_I_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu32ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu32ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_I_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu32ll, aBFu32ll_I_BFu32ll)
//============================================================================



static void Test_aBFu32ll_I_BFu33()
{
  {
    init_simple_test("aBFu32ll_I_BFu33");
    static STRUCT_IF_C aBFu32ll_I_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_I_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu33");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu33.v2");
    set_bf_and_test(lv, v3, 8, 0, 33, 1, "aBFu32ll_I_BFu33");
    set_bf_and_test(lv, v3, 8, 0, 33, hide_ull(1LL<<32), "aBFu32ll_I_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu33, aBFu32ll_I_BFu33)
//============================================================================



static void Test_aBFu32ll_I_BFu7c()
{
  {
    init_simple_test("aBFu32ll_I_BFu7c");
    static STRUCT_IF_C aBFu32ll_I_BFu7c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu7c");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu7c.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_I_BFu7c");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_I_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu7c, aBFu32ll_I_BFu7c)
//============================================================================



static void Test_aBFu32ll_I_BFu7i()
{
  {
    init_simple_test("aBFu32ll_I_BFu7i");
    static STRUCT_IF_C aBFu32ll_I_BFu7i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu7i");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu7i.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_I_BFu7i");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_I_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu7i, aBFu32ll_I_BFu7i)
//============================================================================



static void Test_aBFu32ll_I_BFu7ll()
{
  {
    init_simple_test("aBFu32ll_I_BFu7ll");
    static STRUCT_IF_C aBFu32ll_I_BFu7ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu7ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu7ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_I_BFu7ll");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_I_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu7ll, aBFu32ll_I_BFu7ll)
//============================================================================



static void Test_aBFu32ll_I_BFu7s()
{
  {
    init_simple_test("aBFu32ll_I_BFu7s");
    static STRUCT_IF_C aBFu32ll_I_BFu7s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu7s");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu7s.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_I_BFu7s");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_I_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu7s, aBFu32ll_I_BFu7s)
//============================================================================



static void Test_aBFu32ll_I_BFu8c()
{
  {
    init_simple_test("aBFu32ll_I_BFu8c");
    static STRUCT_IF_C aBFu32ll_I_BFu8c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu8c");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu8c.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_I_BFu8c");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_I_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu8c, aBFu32ll_I_BFu8c)
//============================================================================



static void Test_aBFu32ll_I_BFu8i()
{
  {
    init_simple_test("aBFu32ll_I_BFu8i");
    static STRUCT_IF_C aBFu32ll_I_BFu8i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu8i");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu8i.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_I_BFu8i");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_I_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu8i, aBFu32ll_I_BFu8i)
//============================================================================



static void Test_aBFu32ll_I_BFu8ll()
{
  {
    init_simple_test("aBFu32ll_I_BFu8ll");
    static STRUCT_IF_C aBFu32ll_I_BFu8ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu8ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu8ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_I_BFu8ll");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_I_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu8ll, aBFu32ll_I_BFu8ll)
//============================================================================



static void Test_aBFu32ll_I_BFu8s()
{
  {
    init_simple_test("aBFu32ll_I_BFu8s");
    static STRUCT_IF_C aBFu32ll_I_BFu8s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu8s");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu8s.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_I_BFu8s");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_I_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu8s, aBFu32ll_I_BFu8s)
//============================================================================



static void Test_aBFu32ll_I_BFu9i()
{
  {
    init_simple_test("aBFu32ll_I_BFu9i");
    static STRUCT_IF_C aBFu32ll_I_BFu9i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_I_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu9i");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu9i.v2");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu32ll_I_BFu9i");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu32ll_I_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu9i, aBFu32ll_I_BFu9i)
//============================================================================



static void Test_aBFu32ll_I_BFu9ll()
{
  {
    init_simple_test("aBFu32ll_I_BFu9ll");
    static STRUCT_IF_C aBFu32ll_I_BFu9ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_I_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu9ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu9ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu32ll_I_BFu9ll");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu32ll_I_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu9ll, aBFu32ll_I_BFu9ll)
//============================================================================



static void Test_aBFu32ll_I_BFu9s()
{
  {
    init_simple_test("aBFu32ll_I_BFu9s");
    static STRUCT_IF_C aBFu32ll_I_BFu9s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_I_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_BFu9s");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_BFu9s.v2");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu32ll_I_BFu9s");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu32ll_I_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_BFu9s, aBFu32ll_I_BFu9s)
//============================================================================



static void Test_aBFu32ll_I_C()
{
  {
    init_simple_test("aBFu32ll_I_C");
    static STRUCT_IF_C aBFu32ll_I_C lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_C");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_C.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_C, aBFu32ll_I_C)
//============================================================================



static void Test_aBFu32ll_I_D()
{
  {
    init_simple_test("aBFu32ll_I_D");
    static STRUCT_IF_C aBFu32ll_I_D lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_I_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_D");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_D.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_D, aBFu32ll_I_D)
//============================================================================



static void Test_aBFu32ll_I_F()
{
  {
    init_simple_test("aBFu32ll_I_F");
    static STRUCT_IF_C aBFu32ll_I_F lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_I_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_F");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_F.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_F, aBFu32ll_I_F)
//============================================================================



static void Test_aBFu32ll_I_I()
{
  {
    init_simple_test("aBFu32ll_I_I");
    static STRUCT_IF_C aBFu32ll_I_I lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_I_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_I");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_I.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_I, aBFu32ll_I_I)
//============================================================================



static void Test_aBFu32ll_I_Ip()
{
  {
    init_simple_test("aBFu32ll_I_Ip");
    static STRUCT_IF_C aBFu32ll_I_Ip lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_I_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_Ip");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_Ip.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_Ip, aBFu32ll_I_Ip)
//============================================================================



static void Test_aBFu32ll_I_L()
{
  {
    init_simple_test("aBFu32ll_I_L");
    static STRUCT_IF_C aBFu32ll_I_L lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_I_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_L");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_L.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_L, aBFu32ll_I_L)
//============================================================================



static void Test_aBFu32ll_I_S()
{
  {
    init_simple_test("aBFu32ll_I_S");
    static STRUCT_IF_C aBFu32ll_I_S lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_I_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_S");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_S.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_S, aBFu32ll_I_S)
//============================================================================



static void Test_aBFu32ll_I_Uc()
{
  {
    init_simple_test("aBFu32ll_I_Uc");
    static STRUCT_IF_C aBFu32ll_I_Uc lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_I_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_Uc");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_Uc.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_Uc, aBFu32ll_I_Uc)
//============================================================================



static void Test_aBFu32ll_I_Ui()
{
  {
    init_simple_test("aBFu32ll_I_Ui");
    static STRUCT_IF_C aBFu32ll_I_Ui lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_I_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_Ui");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_Ui.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_Ui, aBFu32ll_I_Ui)
//============================================================================



static void Test_aBFu32ll_I_Ul()
{
  {
    init_simple_test("aBFu32ll_I_Ul");
    static STRUCT_IF_C aBFu32ll_I_Ul lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_I_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_Ul");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_Ul.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_Ul, aBFu32ll_I_Ul)
//============================================================================



static void Test_aBFu32ll_I_Us()
{
  {
    init_simple_test("aBFu32ll_I_Us");
    static STRUCT_IF_C aBFu32ll_I_Us lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_I_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_Us");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_Us.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_Us, aBFu32ll_I_Us)
//============================================================================



static void Test_aBFu32ll_I_Vp()
{
  {
    init_simple_test("aBFu32ll_I_Vp");
    static STRUCT_IF_C aBFu32ll_I_Vp lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_I_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_I_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_I_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_I_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_I_Vp.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_I_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_I_Vp, aBFu32ll_I_Vp)
//============================================================================



static void Test_aBFu32ll_Ip()
{
  {
    init_simple_test("aBFu32ll_Ip");
    static STRUCT_IF_C aBFu32ll_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu32ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip, aBFu32ll_Ip)
//============================================================================



static void Test_aBFu32ll_Ip_BFu15i()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu15i");
    static STRUCT_IF_C aBFu32ll_Ip_BFu15i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Ip_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu15i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, 1, "aBFu32ll_Ip_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, hide_ull(1LL<<14), "aBFu32ll_Ip_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu15i, aBFu32ll_Ip_BFu15i)
//============================================================================



static void Test_aBFu32ll_Ip_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu15ll");
    static STRUCT_IF_C aBFu32ll_Ip_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Ip_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu15ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, 1, "aBFu32ll_Ip_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, hide_ull(1LL<<14), "aBFu32ll_Ip_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu15ll, aBFu32ll_Ip_BFu15ll)
//============================================================================



static void Test_aBFu32ll_Ip_BFu15s()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu15s");
    static STRUCT_IF_C aBFu32ll_Ip_BFu15s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Ip_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu15s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, 1, "aBFu32ll_Ip_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, hide_ull(1LL<<14), "aBFu32ll_Ip_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu15s, aBFu32ll_Ip_BFu15s)
//============================================================================



static void Test_aBFu32ll_Ip_BFu16i()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu16i");
    static STRUCT_IF_C aBFu32ll_Ip_BFu16i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Ip_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu16i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, 1, "aBFu32ll_Ip_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, hide_ull(1LL<<15), "aBFu32ll_Ip_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu16i, aBFu32ll_Ip_BFu16i)
//============================================================================



static void Test_aBFu32ll_Ip_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu16ll");
    static STRUCT_IF_C aBFu32ll_Ip_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Ip_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu16ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, 1, "aBFu32ll_Ip_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, hide_ull(1LL<<15), "aBFu32ll_Ip_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu16ll, aBFu32ll_Ip_BFu16ll)
//============================================================================



static void Test_aBFu32ll_Ip_BFu16s()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu16s");
    static STRUCT_IF_C aBFu32ll_Ip_BFu16s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Ip_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu16s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, 1, "aBFu32ll_Ip_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, hide_ull(1LL<<15), "aBFu32ll_Ip_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu16s, aBFu32ll_Ip_BFu16s)
//============================================================================



static void Test_aBFu32ll_Ip_BFu17i()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu17i");
    static STRUCT_IF_C aBFu32ll_Ip_BFu17i lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu32ll_Ip_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu17i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 17, 1, "aBFu32ll_Ip_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 17, hide_ull(1LL<<16), "aBFu32ll_Ip_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu17i, aBFu32ll_Ip_BFu17i)
//============================================================================



static void Test_aBFu32ll_Ip_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu17ll");
    static STRUCT_IF_C aBFu32ll_Ip_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu32ll_Ip_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu17ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 17, 1, "aBFu32ll_Ip_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 17, hide_ull(1LL<<16), "aBFu32ll_Ip_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu17ll, aBFu32ll_Ip_BFu17ll)
//============================================================================



static void Test_aBFu32ll_Ip_BFu1c()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu1c");
    static STRUCT_IF_C aBFu32ll_Ip_BFu1c lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu1c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 1, 1, "aBFu32ll_Ip_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu1c, aBFu32ll_Ip_BFu1c)
//============================================================================



static void Test_aBFu32ll_Ip_BFu1i()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu1i");
    static STRUCT_IF_C aBFu32ll_Ip_BFu1i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu1i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 1, 1, "aBFu32ll_Ip_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu1i, aBFu32ll_Ip_BFu1i)
//============================================================================



static void Test_aBFu32ll_Ip_BFu1ll()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu1ll");
    static STRUCT_IF_C aBFu32ll_Ip_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu1ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 1, 1, "aBFu32ll_Ip_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu1ll, aBFu32ll_Ip_BFu1ll)
//============================================================================



static void Test_aBFu32ll_Ip_BFu1s()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu1s");
    static STRUCT_IF_C aBFu32ll_Ip_BFu1s lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu1s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 1, 1, "aBFu32ll_Ip_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu1s, aBFu32ll_Ip_BFu1s)
//============================================================================



static void Test_aBFu32ll_Ip_BFu31i()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu31i");
    static STRUCT_IF_C aBFu32ll_Ip_BFu31i lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Ip_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu31i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 31, 1, "aBFu32ll_Ip_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 31, hide_ull(1LL<<30), "aBFu32ll_Ip_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu31i, aBFu32ll_Ip_BFu31i)
//============================================================================



static void Test_aBFu32ll_Ip_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu31ll");
    static STRUCT_IF_C aBFu32ll_Ip_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Ip_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu31ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 31, 1, "aBFu32ll_Ip_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 31, hide_ull(1LL<<30), "aBFu32ll_Ip_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu31ll, aBFu32ll_Ip_BFu31ll)
//============================================================================



static void Test_aBFu32ll_Ip_BFu32i()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu32i");
    static STRUCT_IF_C aBFu32ll_Ip_BFu32i lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Ip_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu32i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 32, 1, "aBFu32ll_Ip_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu32i, aBFu32ll_Ip_BFu32i)
//============================================================================



static void Test_aBFu32ll_Ip_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu32ll");
    static STRUCT_IF_C aBFu32ll_Ip_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Ip_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu32ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 32, 1, "aBFu32ll_Ip_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu32ll, aBFu32ll_Ip_BFu32ll)
//============================================================================



static void Test_aBFu32ll_Ip_BFu33()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu33");
    static STRUCT_IF_C aBFu32ll_Ip_BFu33 lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu32ll_Ip_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu33");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 33, 1, "aBFu32ll_Ip_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 33, hide_ull(1LL<<32), "aBFu32ll_Ip_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu33, aBFu32ll_Ip_BFu33)
//============================================================================



static void Test_aBFu32ll_Ip_BFu7c()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu7c");
    static STRUCT_IF_C aBFu32ll_Ip_BFu7c lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu7c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, 1, "aBFu32ll_Ip_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ip_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu7c, aBFu32ll_Ip_BFu7c)
//============================================================================



static void Test_aBFu32ll_Ip_BFu7i()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu7i");
    static STRUCT_IF_C aBFu32ll_Ip_BFu7i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu7i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, 1, "aBFu32ll_Ip_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ip_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu7i, aBFu32ll_Ip_BFu7i)
//============================================================================



static void Test_aBFu32ll_Ip_BFu7ll()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu7ll");
    static STRUCT_IF_C aBFu32ll_Ip_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu7ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, 1, "aBFu32ll_Ip_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ip_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu7ll, aBFu32ll_Ip_BFu7ll)
//============================================================================



static void Test_aBFu32ll_Ip_BFu7s()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu7s");
    static STRUCT_IF_C aBFu32ll_Ip_BFu7s lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu7s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, 1, "aBFu32ll_Ip_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ip_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu7s, aBFu32ll_Ip_BFu7s)
//============================================================================



static void Test_aBFu32ll_Ip_BFu8c()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu8c");
    static STRUCT_IF_C aBFu32ll_Ip_BFu8c lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu8c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, 1, "aBFu32ll_Ip_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ip_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu8c, aBFu32ll_Ip_BFu8c)
//============================================================================



static void Test_aBFu32ll_Ip_BFu8i()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu8i");
    static STRUCT_IF_C aBFu32ll_Ip_BFu8i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu8i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, 1, "aBFu32ll_Ip_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ip_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu8i, aBFu32ll_Ip_BFu8i)
//============================================================================



static void Test_aBFu32ll_Ip_BFu8ll()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu8ll");
    static STRUCT_IF_C aBFu32ll_Ip_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu8ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, 1, "aBFu32ll_Ip_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ip_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu8ll, aBFu32ll_Ip_BFu8ll)
//============================================================================



static void Test_aBFu32ll_Ip_BFu8s()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu8s");
    static STRUCT_IF_C aBFu32ll_Ip_BFu8s lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu8s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, 1, "aBFu32ll_Ip_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ip_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu8s, aBFu32ll_Ip_BFu8s)
//============================================================================



static void Test_aBFu32ll_Ip_BFu9i()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu9i");
    static STRUCT_IF_C aBFu32ll_Ip_BFu9i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Ip_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu9i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, 1, "aBFu32ll_Ip_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, hide_ull(1LL<<8), "aBFu32ll_Ip_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu9i, aBFu32ll_Ip_BFu9i)
//============================================================================



static void Test_aBFu32ll_Ip_BFu9ll()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu9ll");
    static STRUCT_IF_C aBFu32ll_Ip_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Ip_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu9ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, 1, "aBFu32ll_Ip_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, hide_ull(1LL<<8), "aBFu32ll_Ip_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu9ll, aBFu32ll_Ip_BFu9ll)
//============================================================================



static void Test_aBFu32ll_Ip_BFu9s()
{
  {
    init_simple_test("aBFu32ll_Ip_BFu9s");
    static STRUCT_IF_C aBFu32ll_Ip_BFu9s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Ip_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_BFu9s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, 1, "aBFu32ll_Ip_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, hide_ull(1LL<<8), "aBFu32ll_Ip_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_BFu9s, aBFu32ll_Ip_BFu9s)
//============================================================================



static void Test_aBFu32ll_Ip_C()
{
  {
    init_simple_test("aBFu32ll_Ip_C");
    static STRUCT_IF_C aBFu32ll_Ip_C lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_C");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_C.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_C, aBFu32ll_Ip_C)
//============================================================================



static void Test_aBFu32ll_Ip_D()
{
  {
    init_simple_test("aBFu32ll_Ip_D");
    static STRUCT_IF_C aBFu32ll_Ip_D lv;
    check2(sizeof(lv), ABISELECT(20,16), "sizeof(aBFu32ll_Ip_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_D");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_D.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_D, aBFu32ll_Ip_D)
//============================================================================



static void Test_aBFu32ll_Ip_F()
{
  {
    init_simple_test("aBFu32ll_Ip_F");
    static STRUCT_IF_C aBFu32ll_Ip_F lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Ip_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_F");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_F.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_F, aBFu32ll_Ip_F)
//============================================================================



static void Test_aBFu32ll_Ip_I()
{
  {
    init_simple_test("aBFu32ll_Ip_I");
    static STRUCT_IF_C aBFu32ll_Ip_I lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Ip_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_I");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_I.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_I, aBFu32ll_Ip_I)
//============================================================================



static void Test_aBFu32ll_Ip_Ip()
{
  {
    init_simple_test("aBFu32ll_Ip_Ip");
    static STRUCT_IF_C aBFu32ll_Ip_Ip lv;
    check2(sizeof(lv), ABISELECT(20,12), "sizeof(aBFu32ll_Ip_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_Ip");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_Ip, aBFu32ll_Ip_Ip)
//============================================================================



static void Test_aBFu32ll_Ip_L()
{
  {
    init_simple_test("aBFu32ll_Ip_L");
    static STRUCT_IF_C aBFu32ll_Ip_L lv;
    check2(sizeof(lv), ABISELECT(20,16), "sizeof(aBFu32ll_Ip_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_L");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_L.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_L, aBFu32ll_Ip_L)
//============================================================================



static void Test_aBFu32ll_Ip_S()
{
  {
    init_simple_test("aBFu32ll_Ip_S");
    static STRUCT_IF_C aBFu32ll_Ip_S lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Ip_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_S");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_S.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_S, aBFu32ll_Ip_S)
//============================================================================



static void Test_aBFu32ll_Ip_Uc()
{
  {
    init_simple_test("aBFu32ll_Ip_Uc");
    static STRUCT_IF_C aBFu32ll_Ip_Uc lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Ip_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_Uc");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_Uc, aBFu32ll_Ip_Uc)
//============================================================================



static void Test_aBFu32ll_Ip_Ui()
{
  {
    init_simple_test("aBFu32ll_Ip_Ui");
    static STRUCT_IF_C aBFu32ll_Ip_Ui lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Ip_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_Ui");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_Ui, aBFu32ll_Ip_Ui)
//============================================================================



static void Test_aBFu32ll_Ip_Ul()
{
  {
    init_simple_test("aBFu32ll_Ip_Ul");
    static STRUCT_IF_C aBFu32ll_Ip_Ul lv;
    check2(sizeof(lv), ABISELECT(20,16), "sizeof(aBFu32ll_Ip_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_Ul");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_Ul, aBFu32ll_Ip_Ul)
//============================================================================



static void Test_aBFu32ll_Ip_Us()
{
  {
    init_simple_test("aBFu32ll_Ip_Us");
    static STRUCT_IF_C aBFu32ll_Ip_Us lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Ip_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_Us");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_Us.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_Us, aBFu32ll_Ip_Us)
//============================================================================



static void Test_aBFu32ll_Ip_Vp()
{
  {
    init_simple_test("aBFu32ll_Ip_Vp");
    static STRUCT_IF_C aBFu32ll_Ip_Vp lv;
    check2(sizeof(lv), ABISELECT(20,12), "sizeof(aBFu32ll_Ip_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ip_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ip_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ip_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ip_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Ip_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ip_Vp, aBFu32ll_Ip_Vp)
//============================================================================



static void Test_aBFu32ll_L()
{
  {
    init_simple_test("aBFu32ll_L");
    static STRUCT_IF_C aBFu32ll_L lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L");
    check_field_offset(lv, v2, 4, "aBFu32ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L, aBFu32ll_L)
//============================================================================



static void Test_aBFu32ll_L_BFu15i()
{
  {
    init_simple_test("aBFu32ll_L_BFu15i");
    static STRUCT_IF_C aBFu32ll_L_BFu15i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_L_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu15i");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu15i.v2");
    set_bf_and_test(lv, v3, 12, 0, 15, 1, "aBFu32ll_L_BFu15i");
    set_bf_and_test(lv, v3, 12, 0, 15, hide_ull(1LL<<14), "aBFu32ll_L_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu15i, aBFu32ll_L_BFu15i)
//============================================================================



static void Test_aBFu32ll_L_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_L_BFu15ll");
    static STRUCT_IF_C aBFu32ll_L_BFu15ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_L_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu15ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu15ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 15, 1, "aBFu32ll_L_BFu15ll");
    set_bf_and_test(lv, v3, 12, 0, 15, hide_ull(1LL<<14), "aBFu32ll_L_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu15ll, aBFu32ll_L_BFu15ll)
//============================================================================



static void Test_aBFu32ll_L_BFu15s()
{
  {
    init_simple_test("aBFu32ll_L_BFu15s");
    static STRUCT_IF_C aBFu32ll_L_BFu15s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_L_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu15s");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu15s.v2");
    set_bf_and_test(lv, v3, 12, 0, 15, 1, "aBFu32ll_L_BFu15s");
    set_bf_and_test(lv, v3, 12, 0, 15, hide_ull(1LL<<14), "aBFu32ll_L_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu15s, aBFu32ll_L_BFu15s)
//============================================================================



static void Test_aBFu32ll_L_BFu16i()
{
  {
    init_simple_test("aBFu32ll_L_BFu16i");
    static STRUCT_IF_C aBFu32ll_L_BFu16i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_L_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu16i");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu16i.v2");
    set_bf_and_test(lv, v3, 12, 0, 16, 1, "aBFu32ll_L_BFu16i");
    set_bf_and_test(lv, v3, 12, 0, 16, hide_ull(1LL<<15), "aBFu32ll_L_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu16i, aBFu32ll_L_BFu16i)
//============================================================================



static void Test_aBFu32ll_L_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_L_BFu16ll");
    static STRUCT_IF_C aBFu32ll_L_BFu16ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_L_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu16ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu16ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 16, 1, "aBFu32ll_L_BFu16ll");
    set_bf_and_test(lv, v3, 12, 0, 16, hide_ull(1LL<<15), "aBFu32ll_L_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu16ll, aBFu32ll_L_BFu16ll)
//============================================================================



static void Test_aBFu32ll_L_BFu16s()
{
  {
    init_simple_test("aBFu32ll_L_BFu16s");
    static STRUCT_IF_C aBFu32ll_L_BFu16s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_L_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu16s");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu16s.v2");
    set_bf_and_test(lv, v3, 12, 0, 16, 1, "aBFu32ll_L_BFu16s");
    set_bf_and_test(lv, v3, 12, 0, 16, hide_ull(1LL<<15), "aBFu32ll_L_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu16s, aBFu32ll_L_BFu16s)
//============================================================================



static void Test_aBFu32ll_L_BFu17i()
{
  {
    init_simple_test("aBFu32ll_L_BFu17i");
    static STRUCT_IF_C aBFu32ll_L_BFu17i lv;
    check2(sizeof(lv), 15, "sizeof(aBFu32ll_L_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu17i");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu17i.v2");
    set_bf_and_test(lv, v3, 12, 0, 17, 1, "aBFu32ll_L_BFu17i");
    set_bf_and_test(lv, v3, 12, 0, 17, hide_ull(1LL<<16), "aBFu32ll_L_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu17i, aBFu32ll_L_BFu17i)
//============================================================================



static void Test_aBFu32ll_L_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_L_BFu17ll");
    static STRUCT_IF_C aBFu32ll_L_BFu17ll lv;
    check2(sizeof(lv), 15, "sizeof(aBFu32ll_L_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu17ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu17ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 17, 1, "aBFu32ll_L_BFu17ll");
    set_bf_and_test(lv, v3, 12, 0, 17, hide_ull(1LL<<16), "aBFu32ll_L_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu17ll, aBFu32ll_L_BFu17ll)
//============================================================================



static void Test_aBFu32ll_L_BFu1c()
{
  {
    init_simple_test("aBFu32ll_L_BFu1c");
    static STRUCT_IF_C aBFu32ll_L_BFu1c lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu1c");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu1c.v2");
    set_bf_and_test(lv, v3, 12, 0, 1, 1, "aBFu32ll_L_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu1c, aBFu32ll_L_BFu1c)
//============================================================================



static void Test_aBFu32ll_L_BFu1i()
{
  {
    init_simple_test("aBFu32ll_L_BFu1i");
    static STRUCT_IF_C aBFu32ll_L_BFu1i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu1i");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu1i.v2");
    set_bf_and_test(lv, v3, 12, 0, 1, 1, "aBFu32ll_L_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu1i, aBFu32ll_L_BFu1i)
//============================================================================



static void Test_aBFu32ll_L_BFu1ll()
{
  {
    init_simple_test("aBFu32ll_L_BFu1ll");
    static STRUCT_IF_C aBFu32ll_L_BFu1ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu1ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu1ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 1, 1, "aBFu32ll_L_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu1ll, aBFu32ll_L_BFu1ll)
//============================================================================



static void Test_aBFu32ll_L_BFu1s()
{
  {
    init_simple_test("aBFu32ll_L_BFu1s");
    static STRUCT_IF_C aBFu32ll_L_BFu1s lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu1s");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu1s.v2");
    set_bf_and_test(lv, v3, 12, 0, 1, 1, "aBFu32ll_L_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu1s, aBFu32ll_L_BFu1s)
//============================================================================



static void Test_aBFu32ll_L_BFu31i()
{
  {
    init_simple_test("aBFu32ll_L_BFu31i");
    static STRUCT_IF_C aBFu32ll_L_BFu31i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_L_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu31i");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu31i.v2");
    set_bf_and_test(lv, v3, 12, 0, 31, 1, "aBFu32ll_L_BFu31i");
    set_bf_and_test(lv, v3, 12, 0, 31, hide_ull(1LL<<30), "aBFu32ll_L_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu31i, aBFu32ll_L_BFu31i)
//============================================================================



static void Test_aBFu32ll_L_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_L_BFu31ll");
    static STRUCT_IF_C aBFu32ll_L_BFu31ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_L_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu31ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu31ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 31, 1, "aBFu32ll_L_BFu31ll");
    set_bf_and_test(lv, v3, 12, 0, 31, hide_ull(1LL<<30), "aBFu32ll_L_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu31ll, aBFu32ll_L_BFu31ll)
//============================================================================



static void Test_aBFu32ll_L_BFu32i()
{
  {
    init_simple_test("aBFu32ll_L_BFu32i");
    static STRUCT_IF_C aBFu32ll_L_BFu32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_L_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu32i");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu32i.v2");
    set_bf_and_test(lv, v3, 12, 0, 32, 1, "aBFu32ll_L_BFu32i");
    set_bf_and_test(lv, v3, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu32i, aBFu32ll_L_BFu32i)
//============================================================================



static void Test_aBFu32ll_L_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_L_BFu32ll");
    static STRUCT_IF_C aBFu32ll_L_BFu32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_L_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu32ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu32ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 32, 1, "aBFu32ll_L_BFu32ll");
    set_bf_and_test(lv, v3, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu32ll, aBFu32ll_L_BFu32ll)
//============================================================================



static void Test_aBFu32ll_L_BFu33()
{
  {
    init_simple_test("aBFu32ll_L_BFu33");
    static STRUCT_IF_C aBFu32ll_L_BFu33 lv;
    check2(sizeof(lv), 17, "sizeof(aBFu32ll_L_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu33");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu33.v2");
    set_bf_and_test(lv, v3, 12, 0, 33, 1, "aBFu32ll_L_BFu33");
    set_bf_and_test(lv, v3, 12, 0, 33, hide_ull(1LL<<32), "aBFu32ll_L_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu33, aBFu32ll_L_BFu33)
//============================================================================



static void Test_aBFu32ll_L_BFu7c()
{
  {
    init_simple_test("aBFu32ll_L_BFu7c");
    static STRUCT_IF_C aBFu32ll_L_BFu7c lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu7c");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu7c.v2");
    set_bf_and_test(lv, v3, 12, 0, 7, 1, "aBFu32ll_L_BFu7c");
    set_bf_and_test(lv, v3, 12, 0, 7, hide_ull(1LL<<6), "aBFu32ll_L_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu7c, aBFu32ll_L_BFu7c)
//============================================================================



static void Test_aBFu32ll_L_BFu7i()
{
  {
    init_simple_test("aBFu32ll_L_BFu7i");
    static STRUCT_IF_C aBFu32ll_L_BFu7i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu7i");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu7i.v2");
    set_bf_and_test(lv, v3, 12, 0, 7, 1, "aBFu32ll_L_BFu7i");
    set_bf_and_test(lv, v3, 12, 0, 7, hide_ull(1LL<<6), "aBFu32ll_L_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu7i, aBFu32ll_L_BFu7i)
//============================================================================



static void Test_aBFu32ll_L_BFu7ll()
{
  {
    init_simple_test("aBFu32ll_L_BFu7ll");
    static STRUCT_IF_C aBFu32ll_L_BFu7ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu7ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu7ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 7, 1, "aBFu32ll_L_BFu7ll");
    set_bf_and_test(lv, v3, 12, 0, 7, hide_ull(1LL<<6), "aBFu32ll_L_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu7ll, aBFu32ll_L_BFu7ll)
//============================================================================



static void Test_aBFu32ll_L_BFu7s()
{
  {
    init_simple_test("aBFu32ll_L_BFu7s");
    static STRUCT_IF_C aBFu32ll_L_BFu7s lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu7s");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu7s.v2");
    set_bf_and_test(lv, v3, 12, 0, 7, 1, "aBFu32ll_L_BFu7s");
    set_bf_and_test(lv, v3, 12, 0, 7, hide_ull(1LL<<6), "aBFu32ll_L_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu7s, aBFu32ll_L_BFu7s)
//============================================================================



static void Test_aBFu32ll_L_BFu8c()
{
  {
    init_simple_test("aBFu32ll_L_BFu8c");
    static STRUCT_IF_C aBFu32ll_L_BFu8c lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu8c");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu8c.v2");
    set_bf_and_test(lv, v3, 12, 0, 8, 1, "aBFu32ll_L_BFu8c");
    set_bf_and_test(lv, v3, 12, 0, 8, hide_ull(1LL<<7), "aBFu32ll_L_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu8c, aBFu32ll_L_BFu8c)
//============================================================================



static void Test_aBFu32ll_L_BFu8i()
{
  {
    init_simple_test("aBFu32ll_L_BFu8i");
    static STRUCT_IF_C aBFu32ll_L_BFu8i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu8i");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu8i.v2");
    set_bf_and_test(lv, v3, 12, 0, 8, 1, "aBFu32ll_L_BFu8i");
    set_bf_and_test(lv, v3, 12, 0, 8, hide_ull(1LL<<7), "aBFu32ll_L_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu8i, aBFu32ll_L_BFu8i)
//============================================================================



static void Test_aBFu32ll_L_BFu8ll()
{
  {
    init_simple_test("aBFu32ll_L_BFu8ll");
    static STRUCT_IF_C aBFu32ll_L_BFu8ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu8ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu8ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 8, 1, "aBFu32ll_L_BFu8ll");
    set_bf_and_test(lv, v3, 12, 0, 8, hide_ull(1LL<<7), "aBFu32ll_L_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu8ll, aBFu32ll_L_BFu8ll)
//============================================================================



static void Test_aBFu32ll_L_BFu8s()
{
  {
    init_simple_test("aBFu32ll_L_BFu8s");
    static STRUCT_IF_C aBFu32ll_L_BFu8s lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu8s");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu8s.v2");
    set_bf_and_test(lv, v3, 12, 0, 8, 1, "aBFu32ll_L_BFu8s");
    set_bf_and_test(lv, v3, 12, 0, 8, hide_ull(1LL<<7), "aBFu32ll_L_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu8s, aBFu32ll_L_BFu8s)
//============================================================================



static void Test_aBFu32ll_L_BFu9i()
{
  {
    init_simple_test("aBFu32ll_L_BFu9i");
    static STRUCT_IF_C aBFu32ll_L_BFu9i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_L_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu9i");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu9i.v2");
    set_bf_and_test(lv, v3, 12, 0, 9, 1, "aBFu32ll_L_BFu9i");
    set_bf_and_test(lv, v3, 12, 0, 9, hide_ull(1LL<<8), "aBFu32ll_L_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu9i, aBFu32ll_L_BFu9i)
//============================================================================



static void Test_aBFu32ll_L_BFu9ll()
{
  {
    init_simple_test("aBFu32ll_L_BFu9ll");
    static STRUCT_IF_C aBFu32ll_L_BFu9ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_L_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu9ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu9ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 9, 1, "aBFu32ll_L_BFu9ll");
    set_bf_and_test(lv, v3, 12, 0, 9, hide_ull(1LL<<8), "aBFu32ll_L_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu9ll, aBFu32ll_L_BFu9ll)
//============================================================================



static void Test_aBFu32ll_L_BFu9s()
{
  {
    init_simple_test("aBFu32ll_L_BFu9s");
    static STRUCT_IF_C aBFu32ll_L_BFu9s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_L_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_BFu9s");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_BFu9s.v2");
    set_bf_and_test(lv, v3, 12, 0, 9, 1, "aBFu32ll_L_BFu9s");
    set_bf_and_test(lv, v3, 12, 0, 9, hide_ull(1LL<<8), "aBFu32ll_L_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_BFu9s, aBFu32ll_L_BFu9s)
//============================================================================



static void Test_aBFu32ll_L_C()
{
  {
    init_simple_test("aBFu32ll_L_C");
    static STRUCT_IF_C aBFu32ll_L_C lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_C");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_C.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_C, aBFu32ll_L_C)
//============================================================================



static void Test_aBFu32ll_L_D()
{
  {
    init_simple_test("aBFu32ll_L_D");
    static STRUCT_IF_C aBFu32ll_L_D lv;
    check2(sizeof(lv), 20, "sizeof(aBFu32ll_L_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_D");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_D.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_D, aBFu32ll_L_D)
//============================================================================



static void Test_aBFu32ll_L_F()
{
  {
    init_simple_test("aBFu32ll_L_F");
    static STRUCT_IF_C aBFu32ll_L_F lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_L_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_F");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_F.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_F, aBFu32ll_L_F)
//============================================================================



static void Test_aBFu32ll_L_I()
{
  {
    init_simple_test("aBFu32ll_L_I");
    static STRUCT_IF_C aBFu32ll_L_I lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_L_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_I");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_I.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_I, aBFu32ll_L_I)
//============================================================================



static void Test_aBFu32ll_L_Ip()
{
  {
    init_simple_test("aBFu32ll_L_Ip");
    static STRUCT_IF_C aBFu32ll_L_Ip lv;
    check2(sizeof(lv), ABISELECT(20,16), "sizeof(aBFu32ll_L_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_Ip");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_Ip.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_Ip, aBFu32ll_L_Ip)
//============================================================================



static void Test_aBFu32ll_L_L()
{
  {
    init_simple_test("aBFu32ll_L_L");
    static STRUCT_IF_C aBFu32ll_L_L lv;
    check2(sizeof(lv), 20, "sizeof(aBFu32ll_L_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_L");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_L.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_L, aBFu32ll_L_L)
//============================================================================



static void Test_aBFu32ll_L_S()
{
  {
    init_simple_test("aBFu32ll_L_S");
    static STRUCT_IF_C aBFu32ll_L_S lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_L_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_S");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_S.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_S, aBFu32ll_L_S)
//============================================================================



static void Test_aBFu32ll_L_Uc()
{
  {
    init_simple_test("aBFu32ll_L_Uc");
    static STRUCT_IF_C aBFu32ll_L_Uc lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_L_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_Uc");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_Uc.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_Uc, aBFu32ll_L_Uc)
//============================================================================



static void Test_aBFu32ll_L_Ui()
{
  {
    init_simple_test("aBFu32ll_L_Ui");
    static STRUCT_IF_C aBFu32ll_L_Ui lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_L_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_Ui");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_Ui.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_Ui, aBFu32ll_L_Ui)
//============================================================================



static void Test_aBFu32ll_L_Ul()
{
  {
    init_simple_test("aBFu32ll_L_Ul");
    static STRUCT_IF_C aBFu32ll_L_Ul lv;
    check2(sizeof(lv), 20, "sizeof(aBFu32ll_L_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_Ul");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_Ul.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_Ul, aBFu32ll_L_Ul)
//============================================================================



static void Test_aBFu32ll_L_Us()
{
  {
    init_simple_test("aBFu32ll_L_Us");
    static STRUCT_IF_C aBFu32ll_L_Us lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_L_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_Us");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_Us.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_Us, aBFu32ll_L_Us)
//============================================================================



static void Test_aBFu32ll_L_Vp()
{
  {
    init_simple_test("aBFu32ll_L_Vp");
    static STRUCT_IF_C aBFu32ll_L_Vp lv;
    check2(sizeof(lv), ABISELECT(20,16), "sizeof(aBFu32ll_L_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_L_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_L_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_L_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_L_Vp.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_L_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_L_Vp, aBFu32ll_L_Vp)
//============================================================================



static void Test_aBFu32ll_S()
{
  {
    init_simple_test("aBFu32ll_S");
    static STRUCT_IF_C aBFu32ll_S lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S");
    check_field_offset(lv, v2, 4, "aBFu32ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S, aBFu32ll_S)
//============================================================================



static void Test_aBFu32ll_S_BFu15i()
{
  {
    init_simple_test("aBFu32ll_S_BFu15i");
    static STRUCT_IF_C aBFu32ll_S_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_S_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu15i");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu15i.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu32ll_S_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu32ll_S_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu15i, aBFu32ll_S_BFu15i)
//============================================================================



static void Test_aBFu32ll_S_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_S_BFu15ll");
    static STRUCT_IF_C aBFu32ll_S_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_S_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu15ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu15ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu32ll_S_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu32ll_S_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu15ll, aBFu32ll_S_BFu15ll)
//============================================================================



static void Test_aBFu32ll_S_BFu15s()
{
  {
    init_simple_test("aBFu32ll_S_BFu15s");
    static STRUCT_IF_C aBFu32ll_S_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_S_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu15s");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu15s.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu32ll_S_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu32ll_S_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu15s, aBFu32ll_S_BFu15s)
//============================================================================



static void Test_aBFu32ll_S_BFu16i()
{
  {
    init_simple_test("aBFu32ll_S_BFu16i");
    static STRUCT_IF_C aBFu32ll_S_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_S_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu16i");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu16i.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu32ll_S_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu32ll_S_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu16i, aBFu32ll_S_BFu16i)
//============================================================================



static void Test_aBFu32ll_S_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_S_BFu16ll");
    static STRUCT_IF_C aBFu32ll_S_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_S_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu16ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu16ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu32ll_S_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu32ll_S_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu16ll, aBFu32ll_S_BFu16ll)
//============================================================================



static void Test_aBFu32ll_S_BFu16s()
{
  {
    init_simple_test("aBFu32ll_S_BFu16s");
    static STRUCT_IF_C aBFu32ll_S_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_S_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu16s");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu16s.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu32ll_S_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu32ll_S_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu16s, aBFu32ll_S_BFu16s)
//============================================================================



static void Test_aBFu32ll_S_BFu17i()
{
  {
    init_simple_test("aBFu32ll_S_BFu17i");
    static STRUCT_IF_C aBFu32ll_S_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_S_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu17i");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu17i.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu32ll_S_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu32ll_S_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu17i, aBFu32ll_S_BFu17i)
//============================================================================



static void Test_aBFu32ll_S_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_S_BFu17ll");
    static STRUCT_IF_C aBFu32ll_S_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_S_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu17ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu17ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu32ll_S_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu32ll_S_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu17ll, aBFu32ll_S_BFu17ll)
//============================================================================



static void Test_aBFu32ll_S_BFu1c()
{
  {
    init_simple_test("aBFu32ll_S_BFu1c");
    static STRUCT_IF_C aBFu32ll_S_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu1c");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu1c.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu32ll_S_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu1c, aBFu32ll_S_BFu1c)
//============================================================================



static void Test_aBFu32ll_S_BFu1i()
{
  {
    init_simple_test("aBFu32ll_S_BFu1i");
    static STRUCT_IF_C aBFu32ll_S_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu1i");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu1i.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu32ll_S_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu1i, aBFu32ll_S_BFu1i)
//============================================================================



static void Test_aBFu32ll_S_BFu1ll()
{
  {
    init_simple_test("aBFu32ll_S_BFu1ll");
    static STRUCT_IF_C aBFu32ll_S_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu1ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu1ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu32ll_S_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu1ll, aBFu32ll_S_BFu1ll)
//============================================================================



static void Test_aBFu32ll_S_BFu1s()
{
  {
    init_simple_test("aBFu32ll_S_BFu1s");
    static STRUCT_IF_C aBFu32ll_S_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu1s");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu1s.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu32ll_S_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu1s, aBFu32ll_S_BFu1s)
//============================================================================



static void Test_aBFu32ll_S_BFu31i()
{
  {
    init_simple_test("aBFu32ll_S_BFu31i");
    static STRUCT_IF_C aBFu32ll_S_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_S_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu31i");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu31i.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu32ll_S_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu32ll_S_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu31i, aBFu32ll_S_BFu31i)
//============================================================================



static void Test_aBFu32ll_S_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_S_BFu31ll");
    static STRUCT_IF_C aBFu32ll_S_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_S_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu31ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu31ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu32ll_S_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu32ll_S_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu31ll, aBFu32ll_S_BFu31ll)
//============================================================================



static void Test_aBFu32ll_S_BFu32i()
{
  {
    init_simple_test("aBFu32ll_S_BFu32i");
    static STRUCT_IF_C aBFu32ll_S_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_S_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu32i");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu32i.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu32ll_S_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu32i, aBFu32ll_S_BFu32i)
//============================================================================



static void Test_aBFu32ll_S_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_S_BFu32ll");
    static STRUCT_IF_C aBFu32ll_S_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_S_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu32ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu32ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu32ll_S_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu32ll, aBFu32ll_S_BFu32ll)
//============================================================================



static void Test_aBFu32ll_S_BFu33()
{
  {
    init_simple_test("aBFu32ll_S_BFu33");
    static STRUCT_IF_C aBFu32ll_S_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_S_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu33");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu33.v2");
    set_bf_and_test(lv, v3, 6, 0, 33, 1, "aBFu32ll_S_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, hide_ull(1LL<<32), "aBFu32ll_S_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu33, aBFu32ll_S_BFu33)
//============================================================================



static void Test_aBFu32ll_S_BFu7c()
{
  {
    init_simple_test("aBFu32ll_S_BFu7c");
    static STRUCT_IF_C aBFu32ll_S_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu7c");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu7c.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu32ll_S_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu32ll_S_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu7c, aBFu32ll_S_BFu7c)
//============================================================================



static void Test_aBFu32ll_S_BFu7i()
{
  {
    init_simple_test("aBFu32ll_S_BFu7i");
    static STRUCT_IF_C aBFu32ll_S_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu7i");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu7i.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu32ll_S_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu32ll_S_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu7i, aBFu32ll_S_BFu7i)
//============================================================================



static void Test_aBFu32ll_S_BFu7ll()
{
  {
    init_simple_test("aBFu32ll_S_BFu7ll");
    static STRUCT_IF_C aBFu32ll_S_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu7ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu7ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu32ll_S_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu32ll_S_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu7ll, aBFu32ll_S_BFu7ll)
//============================================================================



static void Test_aBFu32ll_S_BFu7s()
{
  {
    init_simple_test("aBFu32ll_S_BFu7s");
    static STRUCT_IF_C aBFu32ll_S_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu7s");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu7s.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu32ll_S_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu32ll_S_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu7s, aBFu32ll_S_BFu7s)
//============================================================================



static void Test_aBFu32ll_S_BFu8c()
{
  {
    init_simple_test("aBFu32ll_S_BFu8c");
    static STRUCT_IF_C aBFu32ll_S_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu8c");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu8c.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu32ll_S_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu32ll_S_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu8c, aBFu32ll_S_BFu8c)
//============================================================================



static void Test_aBFu32ll_S_BFu8i()
{
  {
    init_simple_test("aBFu32ll_S_BFu8i");
    static STRUCT_IF_C aBFu32ll_S_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu8i");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu8i.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu32ll_S_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu32ll_S_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu8i, aBFu32ll_S_BFu8i)
//============================================================================



static void Test_aBFu32ll_S_BFu8ll()
{
  {
    init_simple_test("aBFu32ll_S_BFu8ll");
    static STRUCT_IF_C aBFu32ll_S_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu8ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu8ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu32ll_S_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu32ll_S_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu8ll, aBFu32ll_S_BFu8ll)
//============================================================================



static void Test_aBFu32ll_S_BFu8s()
{
  {
    init_simple_test("aBFu32ll_S_BFu8s");
    static STRUCT_IF_C aBFu32ll_S_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu8s");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu8s.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu32ll_S_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu32ll_S_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu8s, aBFu32ll_S_BFu8s)
//============================================================================



static void Test_aBFu32ll_S_BFu9i()
{
  {
    init_simple_test("aBFu32ll_S_BFu9i");
    static STRUCT_IF_C aBFu32ll_S_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_S_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu9i");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu9i.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu32ll_S_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu32ll_S_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu9i, aBFu32ll_S_BFu9i)
//============================================================================



static void Test_aBFu32ll_S_BFu9ll()
{
  {
    init_simple_test("aBFu32ll_S_BFu9ll");
    static STRUCT_IF_C aBFu32ll_S_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_S_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu9ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu9ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu32ll_S_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu32ll_S_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu9ll, aBFu32ll_S_BFu9ll)
//============================================================================



static void Test_aBFu32ll_S_BFu9s()
{
  {
    init_simple_test("aBFu32ll_S_BFu9s");
    static STRUCT_IF_C aBFu32ll_S_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_S_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_BFu9s");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_BFu9s.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu32ll_S_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu32ll_S_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_BFu9s, aBFu32ll_S_BFu9s)
//============================================================================



static void Test_aBFu32ll_S_C()
{
  {
    init_simple_test("aBFu32ll_S_C");
    static STRUCT_IF_C aBFu32ll_S_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_C");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_C.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_C, aBFu32ll_S_C)
//============================================================================



static void Test_aBFu32ll_S_D()
{
  {
    init_simple_test("aBFu32ll_S_D");
    static STRUCT_IF_C aBFu32ll_S_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_S_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_D");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_D.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_D, aBFu32ll_S_D)
//============================================================================



static void Test_aBFu32ll_S_F()
{
  {
    init_simple_test("aBFu32ll_S_F");
    static STRUCT_IF_C aBFu32ll_S_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_S_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_F");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_F.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_F, aBFu32ll_S_F)
//============================================================================



static void Test_aBFu32ll_S_I()
{
  {
    init_simple_test("aBFu32ll_S_I");
    static STRUCT_IF_C aBFu32ll_S_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_S_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_I");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_I.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_I, aBFu32ll_S_I)
//============================================================================



static void Test_aBFu32ll_S_Ip()
{
  {
    init_simple_test("aBFu32ll_S_Ip");
    static STRUCT_IF_C aBFu32ll_S_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_S_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_Ip");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_Ip.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_Ip, aBFu32ll_S_Ip)
//============================================================================



static void Test_aBFu32ll_S_L()
{
  {
    init_simple_test("aBFu32ll_S_L");
    static STRUCT_IF_C aBFu32ll_S_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_S_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_L");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_L.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_L, aBFu32ll_S_L)
//============================================================================



static void Test_aBFu32ll_S_S()
{
  {
    init_simple_test("aBFu32ll_S_S");
    static STRUCT_IF_C aBFu32ll_S_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_S_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_S");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_S.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_S, aBFu32ll_S_S)
//============================================================================



static void Test_aBFu32ll_S_Uc()
{
  {
    init_simple_test("aBFu32ll_S_Uc");
    static STRUCT_IF_C aBFu32ll_S_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_S_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_Uc");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_Uc.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_Uc, aBFu32ll_S_Uc)
//============================================================================



static void Test_aBFu32ll_S_Ui()
{
  {
    init_simple_test("aBFu32ll_S_Ui");
    static STRUCT_IF_C aBFu32ll_S_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_S_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_Ui");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_Ui.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_Ui, aBFu32ll_S_Ui)
//============================================================================



static void Test_aBFu32ll_S_Ul()
{
  {
    init_simple_test("aBFu32ll_S_Ul");
    static STRUCT_IF_C aBFu32ll_S_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_S_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_Ul");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_Ul.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_Ul, aBFu32ll_S_Ul)
//============================================================================



static void Test_aBFu32ll_S_Us()
{
  {
    init_simple_test("aBFu32ll_S_Us");
    static STRUCT_IF_C aBFu32ll_S_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_S_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_Us");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_Us.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_Us, aBFu32ll_S_Us)
//============================================================================



static void Test_aBFu32ll_S_Vp()
{
  {
    init_simple_test("aBFu32ll_S_Vp");
    static STRUCT_IF_C aBFu32ll_S_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_S_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_S_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_S_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_S_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_S_Vp.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_S_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_S_Vp, aBFu32ll_S_Vp)
//============================================================================



static void Test_aBFu32ll_Uc()
{
  {
    init_simple_test("aBFu32ll_Uc");
    static STRUCT_IF_C aBFu32ll_Uc lv;
    check2(sizeof(lv), 5, "sizeof(aBFu32ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc, aBFu32ll_Uc)
//============================================================================



static void Test_aBFu32ll_Uc_BFu15i()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu15i");
    static STRUCT_IF_C aBFu32ll_Uc_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Uc_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu15i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu15i.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu32ll_Uc_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Uc_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu15i, aBFu32ll_Uc_BFu15i)
//============================================================================



static void Test_aBFu32ll_Uc_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu15ll");
    static STRUCT_IF_C aBFu32ll_Uc_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Uc_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu15ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu15ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu32ll_Uc_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Uc_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu15ll, aBFu32ll_Uc_BFu15ll)
//============================================================================



static void Test_aBFu32ll_Uc_BFu15s()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu15s");
    static STRUCT_IF_C aBFu32ll_Uc_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Uc_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu15s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu15s.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu32ll_Uc_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Uc_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu15s, aBFu32ll_Uc_BFu15s)
//============================================================================



static void Test_aBFu32ll_Uc_BFu16i()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu16i");
    static STRUCT_IF_C aBFu32ll_Uc_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Uc_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu16i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu16i.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu32ll_Uc_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Uc_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu16i, aBFu32ll_Uc_BFu16i)
//============================================================================



static void Test_aBFu32ll_Uc_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu16ll");
    static STRUCT_IF_C aBFu32ll_Uc_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Uc_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu16ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu16ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu32ll_Uc_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Uc_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu16ll, aBFu32ll_Uc_BFu16ll)
//============================================================================



static void Test_aBFu32ll_Uc_BFu16s()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu16s");
    static STRUCT_IF_C aBFu32ll_Uc_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Uc_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu16s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu16s.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu32ll_Uc_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Uc_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu16s, aBFu32ll_Uc_BFu16s)
//============================================================================



static void Test_aBFu32ll_Uc_BFu17i()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu17i");
    static STRUCT_IF_C aBFu32ll_Uc_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Uc_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu17i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu17i.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu32ll_Uc_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu32ll_Uc_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu17i, aBFu32ll_Uc_BFu17i)
//============================================================================



static void Test_aBFu32ll_Uc_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu17ll");
    static STRUCT_IF_C aBFu32ll_Uc_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Uc_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu17ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu17ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu32ll_Uc_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu32ll_Uc_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu17ll, aBFu32ll_Uc_BFu17ll)
//============================================================================



static void Test_aBFu32ll_Uc_BFu1c()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu1c");
    static STRUCT_IF_C aBFu32ll_Uc_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu1c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu1c.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu32ll_Uc_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu1c, aBFu32ll_Uc_BFu1c)
//============================================================================



static void Test_aBFu32ll_Uc_BFu1i()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu1i");
    static STRUCT_IF_C aBFu32ll_Uc_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu1i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu1i.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu32ll_Uc_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu1i, aBFu32ll_Uc_BFu1i)
//============================================================================



static void Test_aBFu32ll_Uc_BFu1ll()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu1ll");
    static STRUCT_IF_C aBFu32ll_Uc_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu1ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu1ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu32ll_Uc_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu1ll, aBFu32ll_Uc_BFu1ll)
//============================================================================



static void Test_aBFu32ll_Uc_BFu1s()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu1s");
    static STRUCT_IF_C aBFu32ll_Uc_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu1s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu1s.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu32ll_Uc_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu1s, aBFu32ll_Uc_BFu1s)
//============================================================================



static void Test_aBFu32ll_Uc_BFu31i()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu31i");
    static STRUCT_IF_C aBFu32ll_Uc_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Uc_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu31i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu31i.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu32ll_Uc_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu32ll_Uc_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu31i, aBFu32ll_Uc_BFu31i)
//============================================================================



static void Test_aBFu32ll_Uc_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu31ll");
    static STRUCT_IF_C aBFu32ll_Uc_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Uc_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu31ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu31ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu32ll_Uc_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu32ll_Uc_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu31ll, aBFu32ll_Uc_BFu31ll)
//============================================================================



static void Test_aBFu32ll_Uc_BFu32i()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu32i");
    static STRUCT_IF_C aBFu32ll_Uc_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Uc_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu32i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu32i.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu32ll_Uc_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu32i, aBFu32ll_Uc_BFu32i)
//============================================================================



static void Test_aBFu32ll_Uc_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu32ll");
    static STRUCT_IF_C aBFu32ll_Uc_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Uc_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu32ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu32ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu32ll_Uc_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu32ll, aBFu32ll_Uc_BFu32ll)
//============================================================================



static void Test_aBFu32ll_Uc_BFu33()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu33");
    static STRUCT_IF_C aBFu32ll_Uc_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Uc_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu33");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu33.v2");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu32ll_Uc_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu32ll_Uc_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu33, aBFu32ll_Uc_BFu33)
//============================================================================



static void Test_aBFu32ll_Uc_BFu7c()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu7c");
    static STRUCT_IF_C aBFu32ll_Uc_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu7c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu7c.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu32ll_Uc_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Uc_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu7c, aBFu32ll_Uc_BFu7c)
//============================================================================



static void Test_aBFu32ll_Uc_BFu7i()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu7i");
    static STRUCT_IF_C aBFu32ll_Uc_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu7i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu7i.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu32ll_Uc_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Uc_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu7i, aBFu32ll_Uc_BFu7i)
//============================================================================



static void Test_aBFu32ll_Uc_BFu7ll()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu7ll");
    static STRUCT_IF_C aBFu32ll_Uc_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu7ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu7ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu32ll_Uc_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Uc_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu7ll, aBFu32ll_Uc_BFu7ll)
//============================================================================



static void Test_aBFu32ll_Uc_BFu7s()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu7s");
    static STRUCT_IF_C aBFu32ll_Uc_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu7s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu7s.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu32ll_Uc_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Uc_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu7s, aBFu32ll_Uc_BFu7s)
//============================================================================



static void Test_aBFu32ll_Uc_BFu8c()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu8c");
    static STRUCT_IF_C aBFu32ll_Uc_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu8c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu8c.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu32ll_Uc_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Uc_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu8c, aBFu32ll_Uc_BFu8c)
//============================================================================



static void Test_aBFu32ll_Uc_BFu8i()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu8i");
    static STRUCT_IF_C aBFu32ll_Uc_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu8i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu8i.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu32ll_Uc_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Uc_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu8i, aBFu32ll_Uc_BFu8i)
//============================================================================



static void Test_aBFu32ll_Uc_BFu8ll()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu8ll");
    static STRUCT_IF_C aBFu32ll_Uc_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu8ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu8ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu32ll_Uc_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Uc_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu8ll, aBFu32ll_Uc_BFu8ll)
//============================================================================



static void Test_aBFu32ll_Uc_BFu8s()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu8s");
    static STRUCT_IF_C aBFu32ll_Uc_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu8s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu8s.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu32ll_Uc_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Uc_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu8s, aBFu32ll_Uc_BFu8s)
//============================================================================



static void Test_aBFu32ll_Uc_BFu9i()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu9i");
    static STRUCT_IF_C aBFu32ll_Uc_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Uc_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu9i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu9i.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu32ll_Uc_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Uc_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu9i, aBFu32ll_Uc_BFu9i)
//============================================================================



static void Test_aBFu32ll_Uc_BFu9ll()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu9ll");
    static STRUCT_IF_C aBFu32ll_Uc_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Uc_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu9ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu9ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu32ll_Uc_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Uc_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu9ll, aBFu32ll_Uc_BFu9ll)
//============================================================================



static void Test_aBFu32ll_Uc_BFu9s()
{
  {
    init_simple_test("aBFu32ll_Uc_BFu9s");
    static STRUCT_IF_C aBFu32ll_Uc_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Uc_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_BFu9s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_BFu9s.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu32ll_Uc_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Uc_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_BFu9s, aBFu32ll_Uc_BFu9s)
//============================================================================



static void Test_aBFu32ll_Uc_C()
{
  {
    init_simple_test("aBFu32ll_Uc_C");
    static STRUCT_IF_C aBFu32ll_Uc_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_C");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_C.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_C, aBFu32ll_Uc_C)
//============================================================================



static void Test_aBFu32ll_Uc_D()
{
  {
    init_simple_test("aBFu32ll_Uc_D");
    static STRUCT_IF_C aBFu32ll_Uc_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Uc_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_D");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_D.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_D, aBFu32ll_Uc_D)
//============================================================================



static void Test_aBFu32ll_Uc_F()
{
  {
    init_simple_test("aBFu32ll_Uc_F");
    static STRUCT_IF_C aBFu32ll_Uc_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Uc_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_F");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_F.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_F, aBFu32ll_Uc_F)
//============================================================================



static void Test_aBFu32ll_Uc_I()
{
  {
    init_simple_test("aBFu32ll_Uc_I");
    static STRUCT_IF_C aBFu32ll_Uc_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Uc_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_I");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_I.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_I, aBFu32ll_Uc_I)
//============================================================================



static void Test_aBFu32ll_Uc_Ip()
{
  {
    init_simple_test("aBFu32ll_Uc_Ip");
    static STRUCT_IF_C aBFu32ll_Uc_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Uc_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_Ip");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_Ip.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_Ip, aBFu32ll_Uc_Ip)
//============================================================================



static void Test_aBFu32ll_Uc_L()
{
  {
    init_simple_test("aBFu32ll_Uc_L");
    static STRUCT_IF_C aBFu32ll_Uc_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Uc_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_L");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_L.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_L, aBFu32ll_Uc_L)
//============================================================================



static void Test_aBFu32ll_Uc_S()
{
  {
    init_simple_test("aBFu32ll_Uc_S");
    static STRUCT_IF_C aBFu32ll_Uc_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Uc_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_S");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_S.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_S, aBFu32ll_Uc_S)
//============================================================================



static void Test_aBFu32ll_Uc_Uc()
{
  {
    init_simple_test("aBFu32ll_Uc_Uc");
    static STRUCT_IF_C aBFu32ll_Uc_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Uc_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_Uc");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_Uc.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_Uc, aBFu32ll_Uc_Uc)
//============================================================================



static void Test_aBFu32ll_Uc_Ui()
{
  {
    init_simple_test("aBFu32ll_Uc_Ui");
    static STRUCT_IF_C aBFu32ll_Uc_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Uc_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_Ui");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_Ui.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_Ui, aBFu32ll_Uc_Ui)
//============================================================================



static void Test_aBFu32ll_Uc_Ul()
{
  {
    init_simple_test("aBFu32ll_Uc_Ul");
    static STRUCT_IF_C aBFu32ll_Uc_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Uc_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_Ul");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_Ul.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_Ul, aBFu32ll_Uc_Ul)
//============================================================================



static void Test_aBFu32ll_Uc_Us()
{
  {
    init_simple_test("aBFu32ll_Uc_Us");
    static STRUCT_IF_C aBFu32ll_Uc_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Uc_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_Us");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_Us.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_Us, aBFu32ll_Uc_Us)
//============================================================================



static void Test_aBFu32ll_Uc_Vp()
{
  {
    init_simple_test("aBFu32ll_Uc_Vp");
    static STRUCT_IF_C aBFu32ll_Uc_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Uc_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Uc_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Uc_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Uc_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_Uc_Vp.v2");
    check_field_offset(lv, v3, 5, "aBFu32ll_Uc_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Uc_Vp, aBFu32ll_Uc_Vp)
//============================================================================



static void Test_aBFu32ll_Ui()
{
  {
    init_simple_test("aBFu32ll_Ui");
    static STRUCT_IF_C aBFu32ll_Ui lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui, aBFu32ll_Ui)
//============================================================================



static void Test_aBFu32ll_Ui_BFu15i()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu15i");
    static STRUCT_IF_C aBFu32ll_Ui_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Ui_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu15i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu15i.v2");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_Ui_BFu15i");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Ui_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu15i, aBFu32ll_Ui_BFu15i)
//============================================================================



static void Test_aBFu32ll_Ui_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu15ll");
    static STRUCT_IF_C aBFu32ll_Ui_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Ui_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu15ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu15ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_Ui_BFu15ll");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Ui_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu15ll, aBFu32ll_Ui_BFu15ll)
//============================================================================



static void Test_aBFu32ll_Ui_BFu15s()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu15s");
    static STRUCT_IF_C aBFu32ll_Ui_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Ui_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu15s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu15s.v2");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu32ll_Ui_BFu15s");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Ui_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu15s, aBFu32ll_Ui_BFu15s)
//============================================================================



static void Test_aBFu32ll_Ui_BFu16i()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu16i");
    static STRUCT_IF_C aBFu32ll_Ui_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Ui_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu16i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu16i.v2");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_Ui_BFu16i");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Ui_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu16i, aBFu32ll_Ui_BFu16i)
//============================================================================



static void Test_aBFu32ll_Ui_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu16ll");
    static STRUCT_IF_C aBFu32ll_Ui_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Ui_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu16ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu16ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_Ui_BFu16ll");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Ui_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu16ll, aBFu32ll_Ui_BFu16ll)
//============================================================================



static void Test_aBFu32ll_Ui_BFu16s()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu16s");
    static STRUCT_IF_C aBFu32ll_Ui_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Ui_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu16s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu16s.v2");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu32ll_Ui_BFu16s");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Ui_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu16s, aBFu32ll_Ui_BFu16s)
//============================================================================



static void Test_aBFu32ll_Ui_BFu17i()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu17i");
    static STRUCT_IF_C aBFu32ll_Ui_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_Ui_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu17i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu17i.v2");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu32ll_Ui_BFu17i");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu32ll_Ui_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu17i, aBFu32ll_Ui_BFu17i)
//============================================================================



static void Test_aBFu32ll_Ui_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu17ll");
    static STRUCT_IF_C aBFu32ll_Ui_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_Ui_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu17ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu17ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu32ll_Ui_BFu17ll");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu32ll_Ui_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu17ll, aBFu32ll_Ui_BFu17ll)
//============================================================================



static void Test_aBFu32ll_Ui_BFu1c()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu1c");
    static STRUCT_IF_C aBFu32ll_Ui_BFu1c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu1c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu1c.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_Ui_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu1c, aBFu32ll_Ui_BFu1c)
//============================================================================



static void Test_aBFu32ll_Ui_BFu1i()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu1i");
    static STRUCT_IF_C aBFu32ll_Ui_BFu1i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu1i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu1i.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_Ui_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu1i, aBFu32ll_Ui_BFu1i)
//============================================================================



static void Test_aBFu32ll_Ui_BFu1ll()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu1ll");
    static STRUCT_IF_C aBFu32ll_Ui_BFu1ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu1ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu1ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_Ui_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu1ll, aBFu32ll_Ui_BFu1ll)
//============================================================================



static void Test_aBFu32ll_Ui_BFu1s()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu1s");
    static STRUCT_IF_C aBFu32ll_Ui_BFu1s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu1s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu1s.v2");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu32ll_Ui_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu1s, aBFu32ll_Ui_BFu1s)
//============================================================================



static void Test_aBFu32ll_Ui_BFu31i()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu31i");
    static STRUCT_IF_C aBFu32ll_Ui_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_Ui_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu31i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu31i.v2");
    set_bf_and_test(lv, v3, 8, 0, 31, 1, "aBFu32ll_Ui_BFu31i");
    set_bf_and_test(lv, v3, 8, 0, 31, hide_ull(1LL<<30), "aBFu32ll_Ui_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu31i, aBFu32ll_Ui_BFu31i)
//============================================================================



static void Test_aBFu32ll_Ui_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu31ll");
    static STRUCT_IF_C aBFu32ll_Ui_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_Ui_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu31ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu31ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 31, 1, "aBFu32ll_Ui_BFu31ll");
    set_bf_and_test(lv, v3, 8, 0, 31, hide_ull(1LL<<30), "aBFu32ll_Ui_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu31ll, aBFu32ll_Ui_BFu31ll)
//============================================================================



static void Test_aBFu32ll_Ui_BFu32i()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu32i");
    static STRUCT_IF_C aBFu32ll_Ui_BFu32i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_Ui_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu32i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu32i.v2");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_Ui_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu32i, aBFu32ll_Ui_BFu32i)
//============================================================================



static void Test_aBFu32ll_Ui_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu32ll");
    static STRUCT_IF_C aBFu32ll_Ui_BFu32ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_Ui_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu32ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu32ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu32ll_Ui_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu32ll, aBFu32ll_Ui_BFu32ll)
//============================================================================



static void Test_aBFu32ll_Ui_BFu33()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu33");
    static STRUCT_IF_C aBFu32ll_Ui_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ui_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu33");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu33.v2");
    set_bf_and_test(lv, v3, 8, 0, 33, 1, "aBFu32ll_Ui_BFu33");
    set_bf_and_test(lv, v3, 8, 0, 33, hide_ull(1LL<<32), "aBFu32ll_Ui_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu33, aBFu32ll_Ui_BFu33)
//============================================================================



static void Test_aBFu32ll_Ui_BFu7c()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu7c");
    static STRUCT_IF_C aBFu32ll_Ui_BFu7c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu7c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu7c.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_Ui_BFu7c");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ui_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu7c, aBFu32ll_Ui_BFu7c)
//============================================================================



static void Test_aBFu32ll_Ui_BFu7i()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu7i");
    static STRUCT_IF_C aBFu32ll_Ui_BFu7i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu7i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu7i.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_Ui_BFu7i");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ui_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu7i, aBFu32ll_Ui_BFu7i)
//============================================================================



static void Test_aBFu32ll_Ui_BFu7ll()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu7ll");
    static STRUCT_IF_C aBFu32ll_Ui_BFu7ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu7ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu7ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_Ui_BFu7ll");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ui_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu7ll, aBFu32ll_Ui_BFu7ll)
//============================================================================



static void Test_aBFu32ll_Ui_BFu7s()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu7s");
    static STRUCT_IF_C aBFu32ll_Ui_BFu7s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu7s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu7s.v2");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu32ll_Ui_BFu7s");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ui_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu7s, aBFu32ll_Ui_BFu7s)
//============================================================================



static void Test_aBFu32ll_Ui_BFu8c()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu8c");
    static STRUCT_IF_C aBFu32ll_Ui_BFu8c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu8c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu8c.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_Ui_BFu8c");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ui_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu8c, aBFu32ll_Ui_BFu8c)
//============================================================================



static void Test_aBFu32ll_Ui_BFu8i()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu8i");
    static STRUCT_IF_C aBFu32ll_Ui_BFu8i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu8i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu8i.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_Ui_BFu8i");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ui_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu8i, aBFu32ll_Ui_BFu8i)
//============================================================================



static void Test_aBFu32ll_Ui_BFu8ll()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu8ll");
    static STRUCT_IF_C aBFu32ll_Ui_BFu8ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu8ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu8ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_Ui_BFu8ll");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ui_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu8ll, aBFu32ll_Ui_BFu8ll)
//============================================================================



static void Test_aBFu32ll_Ui_BFu8s()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu8s");
    static STRUCT_IF_C aBFu32ll_Ui_BFu8s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu8s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu8s.v2");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu32ll_Ui_BFu8s");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ui_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu8s, aBFu32ll_Ui_BFu8s)
//============================================================================



static void Test_aBFu32ll_Ui_BFu9i()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu9i");
    static STRUCT_IF_C aBFu32ll_Ui_BFu9i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Ui_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu9i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu9i.v2");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu32ll_Ui_BFu9i");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Ui_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu9i, aBFu32ll_Ui_BFu9i)
//============================================================================



static void Test_aBFu32ll_Ui_BFu9ll()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu9ll");
    static STRUCT_IF_C aBFu32ll_Ui_BFu9ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Ui_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu9ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu9ll.v2");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu32ll_Ui_BFu9ll");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Ui_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu9ll, aBFu32ll_Ui_BFu9ll)
//============================================================================



static void Test_aBFu32ll_Ui_BFu9s()
{
  {
    init_simple_test("aBFu32ll_Ui_BFu9s");
    static STRUCT_IF_C aBFu32ll_Ui_BFu9s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Ui_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_BFu9s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_BFu9s.v2");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu32ll_Ui_BFu9s");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Ui_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_BFu9s, aBFu32ll_Ui_BFu9s)
//============================================================================



static void Test_aBFu32ll_Ui_C()
{
  {
    init_simple_test("aBFu32ll_Ui_C");
    static STRUCT_IF_C aBFu32ll_Ui_C lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_C");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_C.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_C, aBFu32ll_Ui_C)
//============================================================================



static void Test_aBFu32ll_Ui_D()
{
  {
    init_simple_test("aBFu32ll_Ui_D");
    static STRUCT_IF_C aBFu32ll_Ui_D lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_Ui_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_D");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_D.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_D, aBFu32ll_Ui_D)
//============================================================================



static void Test_aBFu32ll_Ui_F()
{
  {
    init_simple_test("aBFu32ll_Ui_F");
    static STRUCT_IF_C aBFu32ll_Ui_F lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_Ui_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_F");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_F.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_F, aBFu32ll_Ui_F)
//============================================================================



static void Test_aBFu32ll_Ui_I()
{
  {
    init_simple_test("aBFu32ll_Ui_I");
    static STRUCT_IF_C aBFu32ll_Ui_I lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_Ui_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_I");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_I.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_I, aBFu32ll_Ui_I)
//============================================================================



static void Test_aBFu32ll_Ui_Ip()
{
  {
    init_simple_test("aBFu32ll_Ui_Ip");
    static STRUCT_IF_C aBFu32ll_Ui_Ip lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Ui_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_Ip");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_Ip.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_Ip, aBFu32ll_Ui_Ip)
//============================================================================



static void Test_aBFu32ll_Ui_L()
{
  {
    init_simple_test("aBFu32ll_Ui_L");
    static STRUCT_IF_C aBFu32ll_Ui_L lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_Ui_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_L");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_L.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_L, aBFu32ll_Ui_L)
//============================================================================



static void Test_aBFu32ll_Ui_S()
{
  {
    init_simple_test("aBFu32ll_Ui_S");
    static STRUCT_IF_C aBFu32ll_Ui_S lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Ui_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_S");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_S.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_S, aBFu32ll_Ui_S)
//============================================================================



static void Test_aBFu32ll_Ui_Uc()
{
  {
    init_simple_test("aBFu32ll_Ui_Uc");
    static STRUCT_IF_C aBFu32ll_Ui_Uc lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Ui_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_Uc");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_Uc.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_Uc, aBFu32ll_Ui_Uc)
//============================================================================



static void Test_aBFu32ll_Ui_Ui()
{
  {
    init_simple_test("aBFu32ll_Ui_Ui");
    static STRUCT_IF_C aBFu32ll_Ui_Ui lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_Ui_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_Ui");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_Ui.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_Ui, aBFu32ll_Ui_Ui)
//============================================================================



static void Test_aBFu32ll_Ui_Ul()
{
  {
    init_simple_test("aBFu32ll_Ui_Ul");
    static STRUCT_IF_C aBFu32ll_Ui_Ul lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_Ui_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_Ul");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_Ul.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_Ul, aBFu32ll_Ui_Ul)
//============================================================================



static void Test_aBFu32ll_Ui_Us()
{
  {
    init_simple_test("aBFu32ll_Ui_Us");
    static STRUCT_IF_C aBFu32ll_Ui_Us lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Ui_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_Us");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_Us.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_Us, aBFu32ll_Ui_Us)
//============================================================================



static void Test_aBFu32ll_Ui_Vp()
{
  {
    init_simple_test("aBFu32ll_Ui_Vp");
    static STRUCT_IF_C aBFu32ll_Ui_Vp lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Ui_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ui_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ui_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ui_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ui_Vp.v2");
    check_field_offset(lv, v3, 8, "aBFu32ll_Ui_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ui_Vp, aBFu32ll_Ui_Vp)
//============================================================================



static void Test_aBFu32ll_Ul()
{
  {
    init_simple_test("aBFu32ll_Ul");
    static STRUCT_IF_C aBFu32ll_Ul lv;
    check2(sizeof(lv), 12, "sizeof(aBFu32ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul, aBFu32ll_Ul)
//============================================================================



static void Test_aBFu32ll_Ul_BFu15i()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu15i");
    static STRUCT_IF_C aBFu32ll_Ul_BFu15i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Ul_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu15i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu15i.v2");
    set_bf_and_test(lv, v3, 12, 0, 15, 1, "aBFu32ll_Ul_BFu15i");
    set_bf_and_test(lv, v3, 12, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Ul_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu15i, aBFu32ll_Ul_BFu15i)
//============================================================================



static void Test_aBFu32ll_Ul_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu15ll");
    static STRUCT_IF_C aBFu32ll_Ul_BFu15ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Ul_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu15ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu15ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 15, 1, "aBFu32ll_Ul_BFu15ll");
    set_bf_and_test(lv, v3, 12, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Ul_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu15ll, aBFu32ll_Ul_BFu15ll)
//============================================================================



static void Test_aBFu32ll_Ul_BFu15s()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu15s");
    static STRUCT_IF_C aBFu32ll_Ul_BFu15s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Ul_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu15s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu15s.v2");
    set_bf_and_test(lv, v3, 12, 0, 15, 1, "aBFu32ll_Ul_BFu15s");
    set_bf_and_test(lv, v3, 12, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Ul_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu15s, aBFu32ll_Ul_BFu15s)
//============================================================================



static void Test_aBFu32ll_Ul_BFu16i()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu16i");
    static STRUCT_IF_C aBFu32ll_Ul_BFu16i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Ul_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu16i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu16i.v2");
    set_bf_and_test(lv, v3, 12, 0, 16, 1, "aBFu32ll_Ul_BFu16i");
    set_bf_and_test(lv, v3, 12, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Ul_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu16i, aBFu32ll_Ul_BFu16i)
//============================================================================



static void Test_aBFu32ll_Ul_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu16ll");
    static STRUCT_IF_C aBFu32ll_Ul_BFu16ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Ul_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu16ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu16ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 16, 1, "aBFu32ll_Ul_BFu16ll");
    set_bf_and_test(lv, v3, 12, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Ul_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu16ll, aBFu32ll_Ul_BFu16ll)
//============================================================================



static void Test_aBFu32ll_Ul_BFu16s()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu16s");
    static STRUCT_IF_C aBFu32ll_Ul_BFu16s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Ul_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu16s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu16s.v2");
    set_bf_and_test(lv, v3, 12, 0, 16, 1, "aBFu32ll_Ul_BFu16s");
    set_bf_and_test(lv, v3, 12, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Ul_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu16s, aBFu32ll_Ul_BFu16s)
//============================================================================



static void Test_aBFu32ll_Ul_BFu17i()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu17i");
    static STRUCT_IF_C aBFu32ll_Ul_BFu17i lv;
    check2(sizeof(lv), 15, "sizeof(aBFu32ll_Ul_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu17i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu17i.v2");
    set_bf_and_test(lv, v3, 12, 0, 17, 1, "aBFu32ll_Ul_BFu17i");
    set_bf_and_test(lv, v3, 12, 0, 17, hide_ull(1LL<<16), "aBFu32ll_Ul_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu17i, aBFu32ll_Ul_BFu17i)
//============================================================================



static void Test_aBFu32ll_Ul_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu17ll");
    static STRUCT_IF_C aBFu32ll_Ul_BFu17ll lv;
    check2(sizeof(lv), 15, "sizeof(aBFu32ll_Ul_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu17ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu17ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 17, 1, "aBFu32ll_Ul_BFu17ll");
    set_bf_and_test(lv, v3, 12, 0, 17, hide_ull(1LL<<16), "aBFu32ll_Ul_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu17ll, aBFu32ll_Ul_BFu17ll)
//============================================================================



static void Test_aBFu32ll_Ul_BFu1c()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu1c");
    static STRUCT_IF_C aBFu32ll_Ul_BFu1c lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu1c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu1c.v2");
    set_bf_and_test(lv, v3, 12, 0, 1, 1, "aBFu32ll_Ul_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu1c, aBFu32ll_Ul_BFu1c)
//============================================================================



static void Test_aBFu32ll_Ul_BFu1i()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu1i");
    static STRUCT_IF_C aBFu32ll_Ul_BFu1i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu1i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu1i.v2");
    set_bf_and_test(lv, v3, 12, 0, 1, 1, "aBFu32ll_Ul_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu1i, aBFu32ll_Ul_BFu1i)
//============================================================================



static void Test_aBFu32ll_Ul_BFu1ll()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu1ll");
    static STRUCT_IF_C aBFu32ll_Ul_BFu1ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu1ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu1ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 1, 1, "aBFu32ll_Ul_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu1ll, aBFu32ll_Ul_BFu1ll)
//============================================================================



static void Test_aBFu32ll_Ul_BFu1s()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu1s");
    static STRUCT_IF_C aBFu32ll_Ul_BFu1s lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu1s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu1s.v2");
    set_bf_and_test(lv, v3, 12, 0, 1, 1, "aBFu32ll_Ul_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu1s, aBFu32ll_Ul_BFu1s)
//============================================================================



static void Test_aBFu32ll_Ul_BFu31i()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu31i");
    static STRUCT_IF_C aBFu32ll_Ul_BFu31i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_Ul_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu31i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu31i.v2");
    set_bf_and_test(lv, v3, 12, 0, 31, 1, "aBFu32ll_Ul_BFu31i");
    set_bf_and_test(lv, v3, 12, 0, 31, hide_ull(1LL<<30), "aBFu32ll_Ul_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu31i, aBFu32ll_Ul_BFu31i)
//============================================================================



static void Test_aBFu32ll_Ul_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu31ll");
    static STRUCT_IF_C aBFu32ll_Ul_BFu31ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_Ul_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu31ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu31ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 31, 1, "aBFu32ll_Ul_BFu31ll");
    set_bf_and_test(lv, v3, 12, 0, 31, hide_ull(1LL<<30), "aBFu32ll_Ul_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu31ll, aBFu32ll_Ul_BFu31ll)
//============================================================================



static void Test_aBFu32ll_Ul_BFu32i()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu32i");
    static STRUCT_IF_C aBFu32ll_Ul_BFu32i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_Ul_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu32i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu32i.v2");
    set_bf_and_test(lv, v3, 12, 0, 32, 1, "aBFu32ll_Ul_BFu32i");
    set_bf_and_test(lv, v3, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu32i, aBFu32ll_Ul_BFu32i)
//============================================================================



static void Test_aBFu32ll_Ul_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu32ll");
    static STRUCT_IF_C aBFu32ll_Ul_BFu32ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_Ul_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu32ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu32ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 32, 1, "aBFu32ll_Ul_BFu32ll");
    set_bf_and_test(lv, v3, 12, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu32ll, aBFu32ll_Ul_BFu32ll)
//============================================================================



static void Test_aBFu32ll_Ul_BFu33()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu33");
    static STRUCT_IF_C aBFu32ll_Ul_BFu33 lv;
    check2(sizeof(lv), 17, "sizeof(aBFu32ll_Ul_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu33");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu33.v2");
    set_bf_and_test(lv, v3, 12, 0, 33, 1, "aBFu32ll_Ul_BFu33");
    set_bf_and_test(lv, v3, 12, 0, 33, hide_ull(1LL<<32), "aBFu32ll_Ul_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu33, aBFu32ll_Ul_BFu33)
//============================================================================



static void Test_aBFu32ll_Ul_BFu7c()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu7c");
    static STRUCT_IF_C aBFu32ll_Ul_BFu7c lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu7c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu7c.v2");
    set_bf_and_test(lv, v3, 12, 0, 7, 1, "aBFu32ll_Ul_BFu7c");
    set_bf_and_test(lv, v3, 12, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ul_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu7c, aBFu32ll_Ul_BFu7c)
//============================================================================



static void Test_aBFu32ll_Ul_BFu7i()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu7i");
    static STRUCT_IF_C aBFu32ll_Ul_BFu7i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu7i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu7i.v2");
    set_bf_and_test(lv, v3, 12, 0, 7, 1, "aBFu32ll_Ul_BFu7i");
    set_bf_and_test(lv, v3, 12, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ul_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu7i, aBFu32ll_Ul_BFu7i)
//============================================================================



static void Test_aBFu32ll_Ul_BFu7ll()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu7ll");
    static STRUCT_IF_C aBFu32ll_Ul_BFu7ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu7ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu7ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 7, 1, "aBFu32ll_Ul_BFu7ll");
    set_bf_and_test(lv, v3, 12, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ul_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu7ll, aBFu32ll_Ul_BFu7ll)
//============================================================================



static void Test_aBFu32ll_Ul_BFu7s()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu7s");
    static STRUCT_IF_C aBFu32ll_Ul_BFu7s lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu7s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu7s.v2");
    set_bf_and_test(lv, v3, 12, 0, 7, 1, "aBFu32ll_Ul_BFu7s");
    set_bf_and_test(lv, v3, 12, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Ul_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu7s, aBFu32ll_Ul_BFu7s)
//============================================================================



static void Test_aBFu32ll_Ul_BFu8c()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu8c");
    static STRUCT_IF_C aBFu32ll_Ul_BFu8c lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu8c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu8c.v2");
    set_bf_and_test(lv, v3, 12, 0, 8, 1, "aBFu32ll_Ul_BFu8c");
    set_bf_and_test(lv, v3, 12, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ul_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu8c, aBFu32ll_Ul_BFu8c)
//============================================================================



static void Test_aBFu32ll_Ul_BFu8i()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu8i");
    static STRUCT_IF_C aBFu32ll_Ul_BFu8i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu8i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu8i.v2");
    set_bf_and_test(lv, v3, 12, 0, 8, 1, "aBFu32ll_Ul_BFu8i");
    set_bf_and_test(lv, v3, 12, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ul_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu8i, aBFu32ll_Ul_BFu8i)
//============================================================================



static void Test_aBFu32ll_Ul_BFu8ll()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu8ll");
    static STRUCT_IF_C aBFu32ll_Ul_BFu8ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu8ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu8ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 8, 1, "aBFu32ll_Ul_BFu8ll");
    set_bf_and_test(lv, v3, 12, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ul_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu8ll, aBFu32ll_Ul_BFu8ll)
//============================================================================



static void Test_aBFu32ll_Ul_BFu8s()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu8s");
    static STRUCT_IF_C aBFu32ll_Ul_BFu8s lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu8s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu8s.v2");
    set_bf_and_test(lv, v3, 12, 0, 8, 1, "aBFu32ll_Ul_BFu8s");
    set_bf_and_test(lv, v3, 12, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Ul_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu8s, aBFu32ll_Ul_BFu8s)
//============================================================================



static void Test_aBFu32ll_Ul_BFu9i()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu9i");
    static STRUCT_IF_C aBFu32ll_Ul_BFu9i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Ul_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu9i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu9i.v2");
    set_bf_and_test(lv, v3, 12, 0, 9, 1, "aBFu32ll_Ul_BFu9i");
    set_bf_and_test(lv, v3, 12, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Ul_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu9i, aBFu32ll_Ul_BFu9i)
//============================================================================



static void Test_aBFu32ll_Ul_BFu9ll()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu9ll");
    static STRUCT_IF_C aBFu32ll_Ul_BFu9ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Ul_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu9ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu9ll.v2");
    set_bf_and_test(lv, v3, 12, 0, 9, 1, "aBFu32ll_Ul_BFu9ll");
    set_bf_and_test(lv, v3, 12, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Ul_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu9ll, aBFu32ll_Ul_BFu9ll)
//============================================================================



static void Test_aBFu32ll_Ul_BFu9s()
{
  {
    init_simple_test("aBFu32ll_Ul_BFu9s");
    static STRUCT_IF_C aBFu32ll_Ul_BFu9s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Ul_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_BFu9s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_BFu9s.v2");
    set_bf_and_test(lv, v3, 12, 0, 9, 1, "aBFu32ll_Ul_BFu9s");
    set_bf_and_test(lv, v3, 12, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Ul_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_BFu9s, aBFu32ll_Ul_BFu9s)
//============================================================================



static void Test_aBFu32ll_Ul_C()
{
  {
    init_simple_test("aBFu32ll_Ul_C");
    static STRUCT_IF_C aBFu32ll_Ul_C lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_C");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_C.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_C, aBFu32ll_Ul_C)
//============================================================================



static void Test_aBFu32ll_Ul_D()
{
  {
    init_simple_test("aBFu32ll_Ul_D");
    static STRUCT_IF_C aBFu32ll_Ul_D lv;
    check2(sizeof(lv), 20, "sizeof(aBFu32ll_Ul_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_D");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_D.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_D, aBFu32ll_Ul_D)
//============================================================================



static void Test_aBFu32ll_Ul_F()
{
  {
    init_simple_test("aBFu32ll_Ul_F");
    static STRUCT_IF_C aBFu32ll_Ul_F lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_Ul_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_F");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_F.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_F, aBFu32ll_Ul_F)
//============================================================================



static void Test_aBFu32ll_Ul_I()
{
  {
    init_simple_test("aBFu32ll_Ul_I");
    static STRUCT_IF_C aBFu32ll_Ul_I lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_Ul_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_I");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_I.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_I, aBFu32ll_Ul_I)
//============================================================================



static void Test_aBFu32ll_Ul_Ip()
{
  {
    init_simple_test("aBFu32ll_Ul_Ip");
    static STRUCT_IF_C aBFu32ll_Ul_Ip lv;
    check2(sizeof(lv), ABISELECT(20,16), "sizeof(aBFu32ll_Ul_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_Ip");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_Ip.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_Ip, aBFu32ll_Ul_Ip)
//============================================================================



static void Test_aBFu32ll_Ul_L()
{
  {
    init_simple_test("aBFu32ll_Ul_L");
    static STRUCT_IF_C aBFu32ll_Ul_L lv;
    check2(sizeof(lv), 20, "sizeof(aBFu32ll_Ul_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_L");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_L.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_L, aBFu32ll_Ul_L)
//============================================================================



static void Test_aBFu32ll_Ul_S()
{
  {
    init_simple_test("aBFu32ll_Ul_S");
    static STRUCT_IF_C aBFu32ll_Ul_S lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Ul_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_S");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_S.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_S, aBFu32ll_Ul_S)
//============================================================================



static void Test_aBFu32ll_Ul_Uc()
{
  {
    init_simple_test("aBFu32ll_Ul_Uc");
    static STRUCT_IF_C aBFu32ll_Ul_Uc lv;
    check2(sizeof(lv), 13, "sizeof(aBFu32ll_Ul_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_Uc");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_Uc.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_Uc, aBFu32ll_Ul_Uc)
//============================================================================



static void Test_aBFu32ll_Ul_Ui()
{
  {
    init_simple_test("aBFu32ll_Ul_Ui");
    static STRUCT_IF_C aBFu32ll_Ul_Ui lv;
    check2(sizeof(lv), 16, "sizeof(aBFu32ll_Ul_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_Ui");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_Ui.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_Ui, aBFu32ll_Ul_Ui)
//============================================================================



static void Test_aBFu32ll_Ul_Ul()
{
  {
    init_simple_test("aBFu32ll_Ul_Ul");
    static STRUCT_IF_C aBFu32ll_Ul_Ul lv;
    check2(sizeof(lv), 20, "sizeof(aBFu32ll_Ul_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_Ul");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_Ul.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_Ul, aBFu32ll_Ul_Ul)
//============================================================================



static void Test_aBFu32ll_Ul_Us()
{
  {
    init_simple_test("aBFu32ll_Ul_Us");
    static STRUCT_IF_C aBFu32ll_Ul_Us lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Ul_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_Us");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_Us.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_Us, aBFu32ll_Ul_Us)
//============================================================================



static void Test_aBFu32ll_Ul_Vp()
{
  {
    init_simple_test("aBFu32ll_Ul_Vp");
    static STRUCT_IF_C aBFu32ll_Ul_Vp lv;
    check2(sizeof(lv), ABISELECT(20,16), "sizeof(aBFu32ll_Ul_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Ul_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Ul_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Ul_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_Ul_Vp.v2");
    check_field_offset(lv, v3, 12, "aBFu32ll_Ul_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Ul_Vp, aBFu32ll_Ul_Vp)
//============================================================================



static void Test_aBFu32ll_Us()
{
  {
    init_simple_test("aBFu32ll_Us");
    static STRUCT_IF_C aBFu32ll_Us lv;
    check2(sizeof(lv), 6, "sizeof(aBFu32ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us, aBFu32ll_Us)
//============================================================================



static void Test_aBFu32ll_Us_BFu15i()
{
  {
    init_simple_test("aBFu32ll_Us_BFu15i");
    static STRUCT_IF_C aBFu32ll_Us_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Us_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu15i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu15i.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu32ll_Us_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Us_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu15i, aBFu32ll_Us_BFu15i)
//============================================================================



static void Test_aBFu32ll_Us_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_Us_BFu15ll");
    static STRUCT_IF_C aBFu32ll_Us_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Us_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu15ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu15ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu32ll_Us_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Us_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu15ll, aBFu32ll_Us_BFu15ll)
//============================================================================



static void Test_aBFu32ll_Us_BFu15s()
{
  {
    init_simple_test("aBFu32ll_Us_BFu15s");
    static STRUCT_IF_C aBFu32ll_Us_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Us_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu15s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu15s.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu32ll_Us_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu32ll_Us_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu15s, aBFu32ll_Us_BFu15s)
//============================================================================



static void Test_aBFu32ll_Us_BFu16i()
{
  {
    init_simple_test("aBFu32ll_Us_BFu16i");
    static STRUCT_IF_C aBFu32ll_Us_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Us_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu16i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu16i.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu32ll_Us_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Us_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu16i, aBFu32ll_Us_BFu16i)
//============================================================================



static void Test_aBFu32ll_Us_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_Us_BFu16ll");
    static STRUCT_IF_C aBFu32ll_Us_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Us_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu16ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu16ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu32ll_Us_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Us_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu16ll, aBFu32ll_Us_BFu16ll)
//============================================================================



static void Test_aBFu32ll_Us_BFu16s()
{
  {
    init_simple_test("aBFu32ll_Us_BFu16s");
    static STRUCT_IF_C aBFu32ll_Us_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Us_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu16s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu16s.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu32ll_Us_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu32ll_Us_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu16s, aBFu32ll_Us_BFu16s)
//============================================================================



static void Test_aBFu32ll_Us_BFu17i()
{
  {
    init_simple_test("aBFu32ll_Us_BFu17i");
    static STRUCT_IF_C aBFu32ll_Us_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Us_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu17i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu17i.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu32ll_Us_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu32ll_Us_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu17i, aBFu32ll_Us_BFu17i)
//============================================================================



static void Test_aBFu32ll_Us_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_Us_BFu17ll");
    static STRUCT_IF_C aBFu32ll_Us_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu32ll_Us_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu17ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu17ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu32ll_Us_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu32ll_Us_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu17ll, aBFu32ll_Us_BFu17ll)
//============================================================================



static void Test_aBFu32ll_Us_BFu1c()
{
  {
    init_simple_test("aBFu32ll_Us_BFu1c");
    static STRUCT_IF_C aBFu32ll_Us_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu1c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu1c.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu32ll_Us_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu1c, aBFu32ll_Us_BFu1c)
//============================================================================



static void Test_aBFu32ll_Us_BFu1i()
{
  {
    init_simple_test("aBFu32ll_Us_BFu1i");
    static STRUCT_IF_C aBFu32ll_Us_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu1i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu1i.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu32ll_Us_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu1i, aBFu32ll_Us_BFu1i)
//============================================================================



static void Test_aBFu32ll_Us_BFu1ll()
{
  {
    init_simple_test("aBFu32ll_Us_BFu1ll");
    static STRUCT_IF_C aBFu32ll_Us_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu1ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu1ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu32ll_Us_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu1ll, aBFu32ll_Us_BFu1ll)
//============================================================================



static void Test_aBFu32ll_Us_BFu1s()
{
  {
    init_simple_test("aBFu32ll_Us_BFu1s");
    static STRUCT_IF_C aBFu32ll_Us_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu1s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu1s.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu32ll_Us_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu1s, aBFu32ll_Us_BFu1s)
//============================================================================



static void Test_aBFu32ll_Us_BFu31i()
{
  {
    init_simple_test("aBFu32ll_Us_BFu31i");
    static STRUCT_IF_C aBFu32ll_Us_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Us_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu31i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu31i.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu32ll_Us_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu32ll_Us_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu31i, aBFu32ll_Us_BFu31i)
//============================================================================



static void Test_aBFu32ll_Us_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_Us_BFu31ll");
    static STRUCT_IF_C aBFu32ll_Us_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Us_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu31ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu31ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu32ll_Us_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu32ll_Us_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu31ll, aBFu32ll_Us_BFu31ll)
//============================================================================



static void Test_aBFu32ll_Us_BFu32i()
{
  {
    init_simple_test("aBFu32ll_Us_BFu32i");
    static STRUCT_IF_C aBFu32ll_Us_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Us_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu32i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu32i.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu32ll_Us_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu32i, aBFu32ll_Us_BFu32i)
//============================================================================



static void Test_aBFu32ll_Us_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_Us_BFu32ll");
    static STRUCT_IF_C aBFu32ll_Us_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Us_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu32ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu32ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu32ll_Us_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu32ll, aBFu32ll_Us_BFu32ll)
//============================================================================



static void Test_aBFu32ll_Us_BFu33()
{
  {
    init_simple_test("aBFu32ll_Us_BFu33");
    static STRUCT_IF_C aBFu32ll_Us_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu32ll_Us_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu33");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu33.v2");
    set_bf_and_test(lv, v3, 6, 0, 33, 1, "aBFu32ll_Us_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, hide_ull(1LL<<32), "aBFu32ll_Us_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu33, aBFu32ll_Us_BFu33)
//============================================================================



static void Test_aBFu32ll_Us_BFu7c()
{
  {
    init_simple_test("aBFu32ll_Us_BFu7c");
    static STRUCT_IF_C aBFu32ll_Us_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu7c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu7c.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu32ll_Us_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Us_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu7c, aBFu32ll_Us_BFu7c)
//============================================================================



static void Test_aBFu32ll_Us_BFu7i()
{
  {
    init_simple_test("aBFu32ll_Us_BFu7i");
    static STRUCT_IF_C aBFu32ll_Us_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu7i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu7i.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu32ll_Us_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Us_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu7i, aBFu32ll_Us_BFu7i)
//============================================================================



static void Test_aBFu32ll_Us_BFu7ll()
{
  {
    init_simple_test("aBFu32ll_Us_BFu7ll");
    static STRUCT_IF_C aBFu32ll_Us_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu7ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu7ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu32ll_Us_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Us_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu7ll, aBFu32ll_Us_BFu7ll)
//============================================================================



static void Test_aBFu32ll_Us_BFu7s()
{
  {
    init_simple_test("aBFu32ll_Us_BFu7s");
    static STRUCT_IF_C aBFu32ll_Us_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu7s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu7s.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu32ll_Us_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu32ll_Us_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu7s, aBFu32ll_Us_BFu7s)
//============================================================================



static void Test_aBFu32ll_Us_BFu8c()
{
  {
    init_simple_test("aBFu32ll_Us_BFu8c");
    static STRUCT_IF_C aBFu32ll_Us_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu8c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu8c.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu32ll_Us_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Us_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu8c, aBFu32ll_Us_BFu8c)
//============================================================================



static void Test_aBFu32ll_Us_BFu8i()
{
  {
    init_simple_test("aBFu32ll_Us_BFu8i");
    static STRUCT_IF_C aBFu32ll_Us_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu8i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu8i.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu32ll_Us_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Us_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu8i, aBFu32ll_Us_BFu8i)
//============================================================================



static void Test_aBFu32ll_Us_BFu8ll()
{
  {
    init_simple_test("aBFu32ll_Us_BFu8ll");
    static STRUCT_IF_C aBFu32ll_Us_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu8ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu8ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu32ll_Us_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Us_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu8ll, aBFu32ll_Us_BFu8ll)
//============================================================================



static void Test_aBFu32ll_Us_BFu8s()
{
  {
    init_simple_test("aBFu32ll_Us_BFu8s");
    static STRUCT_IF_C aBFu32ll_Us_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu8s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu8s.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu32ll_Us_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu32ll_Us_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu8s, aBFu32ll_Us_BFu8s)
//============================================================================



static void Test_aBFu32ll_Us_BFu9i()
{
  {
    init_simple_test("aBFu32ll_Us_BFu9i");
    static STRUCT_IF_C aBFu32ll_Us_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Us_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu9i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu9i.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu32ll_Us_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Us_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu9i, aBFu32ll_Us_BFu9i)
//============================================================================



static void Test_aBFu32ll_Us_BFu9ll()
{
  {
    init_simple_test("aBFu32ll_Us_BFu9ll");
    static STRUCT_IF_C aBFu32ll_Us_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Us_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu9ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu9ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu32ll_Us_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Us_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu9ll, aBFu32ll_Us_BFu9ll)
//============================================================================



static void Test_aBFu32ll_Us_BFu9s()
{
  {
    init_simple_test("aBFu32ll_Us_BFu9s");
    static STRUCT_IF_C aBFu32ll_Us_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Us_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_BFu9s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_BFu9s.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu32ll_Us_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu32ll_Us_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_BFu9s, aBFu32ll_Us_BFu9s)
//============================================================================



static void Test_aBFu32ll_Us_C()
{
  {
    init_simple_test("aBFu32ll_Us_C");
    static STRUCT_IF_C aBFu32ll_Us_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_C");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_C.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_C, aBFu32ll_Us_C)
//============================================================================



static void Test_aBFu32ll_Us_D()
{
  {
    init_simple_test("aBFu32ll_Us_D");
    static STRUCT_IF_C aBFu32ll_Us_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Us_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_D");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_D.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_D, aBFu32ll_Us_D)
//============================================================================



static void Test_aBFu32ll_Us_F()
{
  {
    init_simple_test("aBFu32ll_Us_F");
    static STRUCT_IF_C aBFu32ll_Us_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Us_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_F");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_F.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_F, aBFu32ll_Us_F)
//============================================================================



static void Test_aBFu32ll_Us_I()
{
  {
    init_simple_test("aBFu32ll_Us_I");
    static STRUCT_IF_C aBFu32ll_Us_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Us_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_I");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_I.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_I, aBFu32ll_Us_I)
//============================================================================



static void Test_aBFu32ll_Us_Ip()
{
  {
    init_simple_test("aBFu32ll_Us_Ip");
    static STRUCT_IF_C aBFu32ll_Us_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Us_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_Ip");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_Ip.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_Ip, aBFu32ll_Us_Ip)
//============================================================================



static void Test_aBFu32ll_Us_L()
{
  {
    init_simple_test("aBFu32ll_Us_L");
    static STRUCT_IF_C aBFu32ll_Us_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Us_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_L");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_L.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_L, aBFu32ll_Us_L)
//============================================================================



static void Test_aBFu32ll_Us_S()
{
  {
    init_simple_test("aBFu32ll_Us_S");
    static STRUCT_IF_C aBFu32ll_Us_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Us_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_S");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_S.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_S, aBFu32ll_Us_S)
//============================================================================



static void Test_aBFu32ll_Us_Uc()
{
  {
    init_simple_test("aBFu32ll_Us_Uc");
    static STRUCT_IF_C aBFu32ll_Us_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu32ll_Us_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_Uc");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_Uc.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_Uc, aBFu32ll_Us_Uc)
//============================================================================



static void Test_aBFu32ll_Us_Ui()
{
  {
    init_simple_test("aBFu32ll_Us_Ui");
    static STRUCT_IF_C aBFu32ll_Us_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu32ll_Us_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_Ui");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_Ui.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_Ui, aBFu32ll_Us_Ui)
//============================================================================



static void Test_aBFu32ll_Us_Ul()
{
  {
    init_simple_test("aBFu32ll_Us_Ul");
    static STRUCT_IF_C aBFu32ll_Us_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu32ll_Us_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_Ul");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_Ul.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_Ul, aBFu32ll_Us_Ul)
//============================================================================



static void Test_aBFu32ll_Us_Us()
{
  {
    init_simple_test("aBFu32ll_Us_Us");
    static STRUCT_IF_C aBFu32ll_Us_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu32ll_Us_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_Us");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_Us.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_Us, aBFu32ll_Us_Us)
//============================================================================



static void Test_aBFu32ll_Us_Vp()
{
  {
    init_simple_test("aBFu32ll_Us_Vp");
    static STRUCT_IF_C aBFu32ll_Us_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Us_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Us_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Us_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Us_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_Us_Vp.v2");
    check_field_offset(lv, v3, 6, "aBFu32ll_Us_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Us_Vp, aBFu32ll_Us_Vp)
//============================================================================



static void Test_aBFu32ll_Vp()
{
  {
    init_simple_test("aBFu32ll_Vp");
    static STRUCT_IF_C aBFu32ll_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu32ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp, aBFu32ll_Vp)
//============================================================================



static void Test_aBFu32ll_Vp_BFu15i()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu15i");
    static STRUCT_IF_C aBFu32ll_Vp_BFu15i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Vp_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu15i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, 1, "aBFu32ll_Vp_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, hide_ull(1LL<<14), "aBFu32ll_Vp_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu15i, aBFu32ll_Vp_BFu15i)
//============================================================================



static void Test_aBFu32ll_Vp_BFu15ll()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu15ll");
    static STRUCT_IF_C aBFu32ll_Vp_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Vp_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu15ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, 1, "aBFu32ll_Vp_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, hide_ull(1LL<<14), "aBFu32ll_Vp_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu15ll, aBFu32ll_Vp_BFu15ll)
//============================================================================



static void Test_aBFu32ll_Vp_BFu15s()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu15s");
    static STRUCT_IF_C aBFu32ll_Vp_BFu15s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Vp_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu15s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, 1, "aBFu32ll_Vp_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 15, hide_ull(1LL<<14), "aBFu32ll_Vp_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu15s, aBFu32ll_Vp_BFu15s)
//============================================================================



static void Test_aBFu32ll_Vp_BFu16i()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu16i");
    static STRUCT_IF_C aBFu32ll_Vp_BFu16i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Vp_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu16i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, 1, "aBFu32ll_Vp_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, hide_ull(1LL<<15), "aBFu32ll_Vp_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu16i, aBFu32ll_Vp_BFu16i)
//============================================================================



static void Test_aBFu32ll_Vp_BFu16ll()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu16ll");
    static STRUCT_IF_C aBFu32ll_Vp_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Vp_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu16ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, 1, "aBFu32ll_Vp_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, hide_ull(1LL<<15), "aBFu32ll_Vp_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu16ll, aBFu32ll_Vp_BFu16ll)
//============================================================================



static void Test_aBFu32ll_Vp_BFu16s()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu16s");
    static STRUCT_IF_C aBFu32ll_Vp_BFu16s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Vp_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu16s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, 1, "aBFu32ll_Vp_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 16, hide_ull(1LL<<15), "aBFu32ll_Vp_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu16s, aBFu32ll_Vp_BFu16s)
//============================================================================



static void Test_aBFu32ll_Vp_BFu17i()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu17i");
    static STRUCT_IF_C aBFu32ll_Vp_BFu17i lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu32ll_Vp_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu17i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 17, 1, "aBFu32ll_Vp_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 17, hide_ull(1LL<<16), "aBFu32ll_Vp_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu17i, aBFu32ll_Vp_BFu17i)
//============================================================================



static void Test_aBFu32ll_Vp_BFu17ll()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu17ll");
    static STRUCT_IF_C aBFu32ll_Vp_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu32ll_Vp_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu17ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 17, 1, "aBFu32ll_Vp_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 17, hide_ull(1LL<<16), "aBFu32ll_Vp_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu17ll, aBFu32ll_Vp_BFu17ll)
//============================================================================



static void Test_aBFu32ll_Vp_BFu1c()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu1c");
    static STRUCT_IF_C aBFu32ll_Vp_BFu1c lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu1c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 1, 1, "aBFu32ll_Vp_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu1c, aBFu32ll_Vp_BFu1c)
//============================================================================



static void Test_aBFu32ll_Vp_BFu1i()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu1i");
    static STRUCT_IF_C aBFu32ll_Vp_BFu1i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu1i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 1, 1, "aBFu32ll_Vp_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu1i, aBFu32ll_Vp_BFu1i)
//============================================================================



static void Test_aBFu32ll_Vp_BFu1ll()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu1ll");
    static STRUCT_IF_C aBFu32ll_Vp_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu1ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 1, 1, "aBFu32ll_Vp_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu1ll, aBFu32ll_Vp_BFu1ll)
//============================================================================



static void Test_aBFu32ll_Vp_BFu1s()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu1s");
    static STRUCT_IF_C aBFu32ll_Vp_BFu1s lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu1s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 1, 1, "aBFu32ll_Vp_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu1s, aBFu32ll_Vp_BFu1s)
//============================================================================



static void Test_aBFu32ll_Vp_BFu31i()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu31i");
    static STRUCT_IF_C aBFu32ll_Vp_BFu31i lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Vp_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu31i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 31, 1, "aBFu32ll_Vp_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 31, hide_ull(1LL<<30), "aBFu32ll_Vp_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu31i, aBFu32ll_Vp_BFu31i)
//============================================================================



static void Test_aBFu32ll_Vp_BFu31ll()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu31ll");
    static STRUCT_IF_C aBFu32ll_Vp_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Vp_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu31ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 31, 1, "aBFu32ll_Vp_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 31, hide_ull(1LL<<30), "aBFu32ll_Vp_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu31ll, aBFu32ll_Vp_BFu31ll)
//============================================================================



static void Test_aBFu32ll_Vp_BFu32i()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu32i");
    static STRUCT_IF_C aBFu32ll_Vp_BFu32i lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Vp_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu32i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 32, 1, "aBFu32ll_Vp_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu32i, aBFu32ll_Vp_BFu32i)
//============================================================================



static void Test_aBFu32ll_Vp_BFu32ll()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu32ll");
    static STRUCT_IF_C aBFu32ll_Vp_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Vp_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu32ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 32, 1, "aBFu32ll_Vp_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu32ll, aBFu32ll_Vp_BFu32ll)
//============================================================================



static void Test_aBFu32ll_Vp_BFu33()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu33");
    static STRUCT_IF_C aBFu32ll_Vp_BFu33 lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu32ll_Vp_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu33");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 33, 1, "aBFu32ll_Vp_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 33, hide_ull(1LL<<32), "aBFu32ll_Vp_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu33, aBFu32ll_Vp_BFu33)
//============================================================================



static void Test_aBFu32ll_Vp_BFu7c()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu7c");
    static STRUCT_IF_C aBFu32ll_Vp_BFu7c lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu7c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, 1, "aBFu32ll_Vp_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, hide_ull(1LL<<6), "aBFu32ll_Vp_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu7c, aBFu32ll_Vp_BFu7c)
//============================================================================



static void Test_aBFu32ll_Vp_BFu7i()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu7i");
    static STRUCT_IF_C aBFu32ll_Vp_BFu7i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu7i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, 1, "aBFu32ll_Vp_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, hide_ull(1LL<<6), "aBFu32ll_Vp_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu7i, aBFu32ll_Vp_BFu7i)
//============================================================================



static void Test_aBFu32ll_Vp_BFu7ll()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu7ll");
    static STRUCT_IF_C aBFu32ll_Vp_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu7ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, 1, "aBFu32ll_Vp_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, hide_ull(1LL<<6), "aBFu32ll_Vp_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu7ll, aBFu32ll_Vp_BFu7ll)
//============================================================================



static void Test_aBFu32ll_Vp_BFu7s()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu7s");
    static STRUCT_IF_C aBFu32ll_Vp_BFu7s lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu7s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, 1, "aBFu32ll_Vp_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 7, hide_ull(1LL<<6), "aBFu32ll_Vp_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu7s, aBFu32ll_Vp_BFu7s)
//============================================================================



static void Test_aBFu32ll_Vp_BFu8c()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu8c");
    static STRUCT_IF_C aBFu32ll_Vp_BFu8c lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu8c");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, 1, "aBFu32ll_Vp_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, hide_ull(1LL<<7), "aBFu32ll_Vp_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu8c, aBFu32ll_Vp_BFu8c)
//============================================================================



static void Test_aBFu32ll_Vp_BFu8i()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu8i");
    static STRUCT_IF_C aBFu32ll_Vp_BFu8i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu8i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, 1, "aBFu32ll_Vp_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, hide_ull(1LL<<7), "aBFu32ll_Vp_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu8i, aBFu32ll_Vp_BFu8i)
//============================================================================



static void Test_aBFu32ll_Vp_BFu8ll()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu8ll");
    static STRUCT_IF_C aBFu32ll_Vp_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu8ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, 1, "aBFu32ll_Vp_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, hide_ull(1LL<<7), "aBFu32ll_Vp_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu8ll, aBFu32ll_Vp_BFu8ll)
//============================================================================



static void Test_aBFu32ll_Vp_BFu8s()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu8s");
    static STRUCT_IF_C aBFu32ll_Vp_BFu8s lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu8s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, 1, "aBFu32ll_Vp_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 8, hide_ull(1LL<<7), "aBFu32ll_Vp_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu8s, aBFu32ll_Vp_BFu8s)
//============================================================================



static void Test_aBFu32ll_Vp_BFu9i()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu9i");
    static STRUCT_IF_C aBFu32ll_Vp_BFu9i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Vp_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu9i");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, 1, "aBFu32ll_Vp_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, hide_ull(1LL<<8), "aBFu32ll_Vp_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu9i, aBFu32ll_Vp_BFu9i)
//============================================================================



static void Test_aBFu32ll_Vp_BFu9ll()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu9ll");
    static STRUCT_IF_C aBFu32ll_Vp_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Vp_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu9ll");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, 1, "aBFu32ll_Vp_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, hide_ull(1LL<<8), "aBFu32ll_Vp_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu9ll, aBFu32ll_Vp_BFu9ll)
//============================================================================



static void Test_aBFu32ll_Vp_BFu9s()
{
  {
    init_simple_test("aBFu32ll_Vp_BFu9s");
    static STRUCT_IF_C aBFu32ll_Vp_BFu9s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Vp_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_BFu9s");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, 1, "aBFu32ll_Vp_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(12,8), 0, 9, hide_ull(1LL<<8), "aBFu32ll_Vp_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_BFu9s, aBFu32ll_Vp_BFu9s)
//============================================================================



static void Test_aBFu32ll_Vp_C()
{
  {
    init_simple_test("aBFu32ll_Vp_C");
    static STRUCT_IF_C aBFu32ll_Vp_C lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_C");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_C.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_C, aBFu32ll_Vp_C)
//============================================================================



static void Test_aBFu32ll_Vp_D()
{
  {
    init_simple_test("aBFu32ll_Vp_D");
    static STRUCT_IF_C aBFu32ll_Vp_D lv;
    check2(sizeof(lv), ABISELECT(20,16), "sizeof(aBFu32ll_Vp_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_D");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_D.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_D, aBFu32ll_Vp_D)
//============================================================================



static void Test_aBFu32ll_Vp_F()
{
  {
    init_simple_test("aBFu32ll_Vp_F");
    static STRUCT_IF_C aBFu32ll_Vp_F lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Vp_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_F");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_F.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_F, aBFu32ll_Vp_F)
//============================================================================



static void Test_aBFu32ll_Vp_I()
{
  {
    init_simple_test("aBFu32ll_Vp_I");
    static STRUCT_IF_C aBFu32ll_Vp_I lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Vp_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_I");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_I.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_I, aBFu32ll_Vp_I)
//============================================================================



static void Test_aBFu32ll_Vp_Ip()
{
  {
    init_simple_test("aBFu32ll_Vp_Ip");
    static STRUCT_IF_C aBFu32ll_Vp_Ip lv;
    check2(sizeof(lv), ABISELECT(20,12), "sizeof(aBFu32ll_Vp_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_Ip");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_Ip, aBFu32ll_Vp_Ip)
//============================================================================



static void Test_aBFu32ll_Vp_L()
{
  {
    init_simple_test("aBFu32ll_Vp_L");
    static STRUCT_IF_C aBFu32ll_Vp_L lv;
    check2(sizeof(lv), ABISELECT(20,16), "sizeof(aBFu32ll_Vp_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_L");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_L.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_L, aBFu32ll_Vp_L)
//============================================================================



static void Test_aBFu32ll_Vp_S()
{
  {
    init_simple_test("aBFu32ll_Vp_S");
    static STRUCT_IF_C aBFu32ll_Vp_S lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Vp_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_S");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_S.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_S, aBFu32ll_Vp_S)
//============================================================================



static void Test_aBFu32ll_Vp_Uc()
{
  {
    init_simple_test("aBFu32ll_Vp_Uc");
    static STRUCT_IF_C aBFu32ll_Vp_Uc lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu32ll_Vp_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_Uc");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_Uc, aBFu32ll_Vp_Uc)
//============================================================================



static void Test_aBFu32ll_Vp_Ui()
{
  {
    init_simple_test("aBFu32ll_Vp_Ui");
    static STRUCT_IF_C aBFu32ll_Vp_Ui lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu32ll_Vp_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_Ui");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_Ui, aBFu32ll_Vp_Ui)
//============================================================================



static void Test_aBFu32ll_Vp_Ul()
{
  {
    init_simple_test("aBFu32ll_Vp_Ul");
    static STRUCT_IF_C aBFu32ll_Vp_Ul lv;
    check2(sizeof(lv), ABISELECT(20,16), "sizeof(aBFu32ll_Vp_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_Ul");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_Ul, aBFu32ll_Vp_Ul)
//============================================================================



static void Test_aBFu32ll_Vp_Us()
{
  {
    init_simple_test("aBFu32ll_Vp_Us");
    static STRUCT_IF_C aBFu32ll_Vp_Us lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu32ll_Vp_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_Us");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_Us.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_Us, aBFu32ll_Vp_Us)
//============================================================================



static void Test_aBFu32ll_Vp_Vp()
{
  {
    init_simple_test("aBFu32ll_Vp_Vp");
    static STRUCT_IF_C aBFu32ll_Vp_Vp lv;
    check2(sizeof(lv), ABISELECT(20,12), "sizeof(aBFu32ll_Vp_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu32ll_Vp_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu32ll_Vp_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu32ll_Vp_Vp");
    check_field_offset(lv, v2, 4, "aBFu32ll_Vp_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(12,8), "aBFu32ll_Vp_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu32ll_Vp_Vp, aBFu32ll_Vp_Vp)
//============================================================================



static void Test_aBFu33()
{
  {
    init_simple_test("aBFu33");
    static STRUCT_IF_C aBFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33, aBFu33)
//============================================================================



static void Test_aBFu33_BFs33()
{
  {
    init_simple_test("aBFu33_BFs33");
    static STRUCT_IF_C aBFu33_BFs33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFs33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFs33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFs33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_sll(1LL<<32), "aBFu33_BFs33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFs33, aBFu33_BFs33)
//============================================================================



static void Test_aBFu33_BFs33_BFs33()
{
  {
    init_simple_test("aBFu33_BFs33_BFs33");
    static STRUCT_IF_C aBFu33_BFs33_BFs33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFs33_BFs33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFs33_BFs33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFs33_BFs33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFs33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFs33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_sll(1LL<<32), "aBFu33_BFs33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFs33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_sll(1LL<<32), "aBFu33_BFs33_BFs33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFs33_BFs33, aBFu33_BFs33_BFs33)
//============================================================================



static void Test_aBFu33_BFs33_BFs33_BFs33()
{
  {
    init_simple_test("aBFu33_BFs33_BFs33_BFs33");
    static STRUCT_IF_C aBFu33_BFs33_BFs33_BFs33 lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFs33_BFs33_BFs33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFs33_BFs33_BFs33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFs33_BFs33_BFs33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFs33_BFs33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFs33_BFs33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_sll(1LL<<32), "aBFu33_BFs33_BFs33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFs33_BFs33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_sll(1LL<<32), "aBFu33_BFs33_BFs33_BFs33");
    set_bf_and_test(lv, v4, 12, 3, 33, 1, "aBFu33_BFs33_BFs33_BFs33");
    set_bf_and_test(lv, v4, 12, 3, 33, hide_sll(1LL<<32), "aBFu33_BFs33_BFs33_BFs33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFs33_BFs33_BFs33, aBFu33_BFs33_BFs33_BFs33)
//============================================================================



static void Test_aBFu33_BFs33_BFs33_BFu33()
{
  {
    init_simple_test("aBFu33_BFs33_BFs33_BFu33");
    static STRUCT_IF_C aBFu33_BFs33_BFs33_BFu33 lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFs33_BFs33_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFs33_BFs33_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFs33_BFs33_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFs33_BFs33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFs33_BFs33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_sll(1LL<<32), "aBFu33_BFs33_BFs33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFs33_BFs33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_sll(1LL<<32), "aBFu33_BFs33_BFs33_BFu33");
    set_bf_and_test(lv, v4, 12, 3, 33, 1, "aBFu33_BFs33_BFs33_BFu33");
    set_bf_and_test(lv, v4, 12, 3, 33, hide_ull(1LL<<32), "aBFu33_BFs33_BFs33_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFs33_BFs33_BFu33, aBFu33_BFs33_BFs33_BFu33)
//============================================================================



static void Test_aBFu33_BFs33_BFu33()
{
  {
    init_simple_test("aBFu33_BFs33_BFu33");
    static STRUCT_IF_C aBFu33_BFs33_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFs33_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFs33_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFs33_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFs33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFs33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_sll(1LL<<32), "aBFu33_BFs33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFs33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_ull(1LL<<32), "aBFu33_BFs33_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFs33_BFu33, aBFu33_BFs33_BFu33)
//============================================================================



static void Test_aBFu33_BFs33_BFu33_BFs33()
{
  {
    init_simple_test("aBFu33_BFs33_BFu33_BFs33");
    static STRUCT_IF_C aBFu33_BFs33_BFu33_BFs33 lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFs33_BFu33_BFs33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFs33_BFu33_BFs33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFs33_BFu33_BFs33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFs33_BFu33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFs33_BFu33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_sll(1LL<<32), "aBFu33_BFs33_BFu33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFs33_BFu33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_ull(1LL<<32), "aBFu33_BFs33_BFu33_BFs33");
    set_bf_and_test(lv, v4, 12, 3, 33, 1, "aBFu33_BFs33_BFu33_BFs33");
    set_bf_and_test(lv, v4, 12, 3, 33, hide_sll(1LL<<32), "aBFu33_BFs33_BFu33_BFs33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFs33_BFu33_BFs33, aBFu33_BFs33_BFu33_BFs33)
//============================================================================



static void Test_aBFu33_BFs33_BFu33_BFu33()
{
  {
    init_simple_test("aBFu33_BFs33_BFu33_BFu33");
    static STRUCT_IF_C aBFu33_BFs33_BFu33_BFu33 lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFs33_BFu33_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFs33_BFu33_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFs33_BFu33_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFs33_BFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFs33_BFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_sll(1LL<<32), "aBFu33_BFs33_BFu33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFs33_BFu33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_ull(1LL<<32), "aBFu33_BFs33_BFu33_BFu33");
    set_bf_and_test(lv, v4, 12, 3, 33, 1, "aBFu33_BFs33_BFu33_BFu33");
    set_bf_and_test(lv, v4, 12, 3, 33, hide_ull(1LL<<32), "aBFu33_BFs33_BFu33_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFs33_BFu33_BFu33, aBFu33_BFs33_BFu33_BFu33)
//============================================================================



static void Test_aBFu33_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu15i");
    static STRUCT_IF_C aBFu33_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i, aBFu33_BFu15i)
//============================================================================



static void Test_aBFu33_BFu15i_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu15i");
    static STRUCT_IF_C aBFu33_BFu15i_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_BFu15i_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu15i, aBFu33_BFu15i_BFu15i)
//============================================================================



static void Test_aBFu33_BFu15i_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu15i_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_BFu15i_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu15ll, aBFu33_BFu15i_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu15i_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu15s");
    static STRUCT_IF_C aBFu33_BFu15i_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_BFu15i_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu15s, aBFu33_BFu15i_BFu15s)
//============================================================================



static void Test_aBFu33_BFu15i_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu16i");
    static STRUCT_IF_C aBFu33_BFu15i_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_BFu15i_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu15i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu16i, aBFu33_BFu15i_BFu16i)
//============================================================================



static void Test_aBFu33_BFu15i_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu15i_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_BFu15i_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu15i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu16ll, aBFu33_BFu15i_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu15i_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu16s");
    static STRUCT_IF_C aBFu33_BFu15i_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_BFu15i_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu15i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu16s, aBFu33_BFu15i_BFu16s)
//============================================================================



static void Test_aBFu33_BFu15i_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu17i");
    static STRUCT_IF_C aBFu33_BFu15i_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu15i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu33_BFu15i_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu15i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu17i, aBFu33_BFu15i_BFu17i)
//============================================================================



static void Test_aBFu33_BFu15i_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu15i_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu15i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu33_BFu15i_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu15i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu17ll, aBFu33_BFu15i_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu15i_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu1c");
    static STRUCT_IF_C aBFu33_BFu15i_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu1c");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu1c, aBFu33_BFu15i_BFu1c)
//============================================================================



static void Test_aBFu33_BFu15i_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu1i");
    static STRUCT_IF_C aBFu33_BFu15i_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu1i");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu1i, aBFu33_BFu15i_BFu1i)
//============================================================================



static void Test_aBFu33_BFu15i_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu15i_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu1ll");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu1ll, aBFu33_BFu15i_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu15i_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu1s");
    static STRUCT_IF_C aBFu33_BFu15i_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu1s");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu1s, aBFu33_BFu15i_BFu1s)
//============================================================================



static void Test_aBFu33_BFu15i_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu31i");
    static STRUCT_IF_C aBFu33_BFu15i_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu33_BFu15i_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu15i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu31i, aBFu33_BFu15i_BFu31i)
//============================================================================



static void Test_aBFu33_BFu15i_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu15i_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu33_BFu15i_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu15i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu31ll, aBFu33_BFu15i_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu15i_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu32i");
    static STRUCT_IF_C aBFu33_BFu15i_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu33_BFu15i_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu15i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu32i, aBFu33_BFu15i_BFu32i)
//============================================================================



static void Test_aBFu33_BFu15i_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu15i_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu33_BFu15i_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu15i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu32ll, aBFu33_BFu15i_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu15i_BFu33()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu33");
    static STRUCT_IF_C aBFu33_BFu15i_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu15i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, 1, "aBFu33_BFu15i_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu33, aBFu33_BFu15i_BFu33)
//============================================================================



static void Test_aBFu33_BFu15i_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu7c");
    static STRUCT_IF_C aBFu33_BFu15i_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15i_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu7c, aBFu33_BFu15i_BFu7c)
//============================================================================



static void Test_aBFu33_BFu15i_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu7i");
    static STRUCT_IF_C aBFu33_BFu15i_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15i_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu7i, aBFu33_BFu15i_BFu7i)
//============================================================================



static void Test_aBFu33_BFu15i_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu15i_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15i_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu7ll, aBFu33_BFu15i_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu15i_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu7s");
    static STRUCT_IF_C aBFu33_BFu15i_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15i_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu7s, aBFu33_BFu15i_BFu7s)
//============================================================================



static void Test_aBFu33_BFu15i_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu8c");
    static STRUCT_IF_C aBFu33_BFu15i_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15i_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu8c, aBFu33_BFu15i_BFu8c)
//============================================================================



static void Test_aBFu33_BFu15i_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu8i");
    static STRUCT_IF_C aBFu33_BFu15i_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15i_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu8i, aBFu33_BFu15i_BFu8i)
//============================================================================



static void Test_aBFu33_BFu15i_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu15i_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15i_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu8ll, aBFu33_BFu15i_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu15i_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu8s");
    static STRUCT_IF_C aBFu33_BFu15i_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15i_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu8s, aBFu33_BFu15i_BFu8s)
//============================================================================



static void Test_aBFu33_BFu15i_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu9i");
    static STRUCT_IF_C aBFu33_BFu15i_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_BFu15i_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu15i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu9i, aBFu33_BFu15i_BFu9i)
//============================================================================



static void Test_aBFu33_BFu15i_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu15i_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_BFu15i_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu15i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu9ll, aBFu33_BFu15i_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu15i_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu15i_BFu9s");
    static STRUCT_IF_C aBFu33_BFu15i_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_BFu15i_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu15i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_BFu9s, aBFu33_BFu15i_BFu9s)
//============================================================================



static void Test_aBFu33_BFu15i_C()
{
  {
    init_simple_test("aBFu33_BFu15i_C");
    static STRUCT_IF_C aBFu33_BFu15i_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_C");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_C");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_C");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_C, aBFu33_BFu15i_C)
//============================================================================



static void Test_aBFu33_BFu15i_D()
{
  {
    init_simple_test("aBFu33_BFu15i_D");
    static STRUCT_IF_C aBFu33_BFu15i_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu15i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_D");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_D");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_D");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_D, aBFu33_BFu15i_D)
//============================================================================



static void Test_aBFu33_BFu15i_F()
{
  {
    init_simple_test("aBFu33_BFu15i_F");
    static STRUCT_IF_C aBFu33_BFu15i_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_F");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_F");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_F");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_F, aBFu33_BFu15i_F)
//============================================================================



static void Test_aBFu33_BFu15i_I()
{
  {
    init_simple_test("aBFu33_BFu15i_I");
    static STRUCT_IF_C aBFu33_BFu15i_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_I");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_I");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_I");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_I, aBFu33_BFu15i_I)
//============================================================================



static void Test_aBFu33_BFu15i_Ip()
{
  {
    init_simple_test("aBFu33_BFu15i_Ip");
    static STRUCT_IF_C aBFu33_BFu15i_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu15i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_Ip");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_Ip, aBFu33_BFu15i_Ip)
//============================================================================



static void Test_aBFu33_BFu15i_L()
{
  {
    init_simple_test("aBFu33_BFu15i_L");
    static STRUCT_IF_C aBFu33_BFu15i_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu15i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_L");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_L");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_L");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_L, aBFu33_BFu15i_L)
//============================================================================



static void Test_aBFu33_BFu15i_S()
{
  {
    init_simple_test("aBFu33_BFu15i_S");
    static STRUCT_IF_C aBFu33_BFu15i_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_S");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_S");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_S");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_S, aBFu33_BFu15i_S)
//============================================================================



static void Test_aBFu33_BFu15i_Uc()
{
  {
    init_simple_test("aBFu33_BFu15i_Uc");
    static STRUCT_IF_C aBFu33_BFu15i_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_Uc");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_Uc, aBFu33_BFu15i_Uc)
//============================================================================



static void Test_aBFu33_BFu15i_Ui()
{
  {
    init_simple_test("aBFu33_BFu15i_Ui");
    static STRUCT_IF_C aBFu33_BFu15i_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_Ui");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_Ui, aBFu33_BFu15i_Ui)
//============================================================================



static void Test_aBFu33_BFu15i_Ul()
{
  {
    init_simple_test("aBFu33_BFu15i_Ul");
    static STRUCT_IF_C aBFu33_BFu15i_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu15i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_Ul");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_Ul, aBFu33_BFu15i_Ul)
//============================================================================



static void Test_aBFu33_BFu15i_Us()
{
  {
    init_simple_test("aBFu33_BFu15i_Us");
    static STRUCT_IF_C aBFu33_BFu15i_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_Us");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_Us");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_Us");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_Us, aBFu33_BFu15i_Us)
//============================================================================



static void Test_aBFu33_BFu15i_Vp()
{
  {
    init_simple_test("aBFu33_BFu15i_Vp");
    static STRUCT_IF_C aBFu33_BFu15i_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu15i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15i_Vp");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15i_Vp, aBFu33_BFu15i_Vp)
//============================================================================



static void Test_aBFu33_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll, aBFu33_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu15i");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_BFu15ll_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu15i, aBFu33_BFu15ll_BFu15i)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu15ll, aBFu33_BFu15ll_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu15s");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_BFu15ll_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu15s, aBFu33_BFu15ll_BFu15s)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu16i");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_BFu15ll_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu15ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu16i, aBFu33_BFu15ll_BFu16i)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu15ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu16ll, aBFu33_BFu15ll_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu16s");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_BFu15ll_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu15ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu16s, aBFu33_BFu15ll_BFu16s)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu17i");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu15ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu33_BFu15ll_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu15ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu17i, aBFu33_BFu15ll_BFu17i)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu15ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu33_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu15ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu17ll, aBFu33_BFu15ll_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu1c");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu1c");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu1c, aBFu33_BFu15ll_BFu1c)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu1i");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu1i");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu1i, aBFu33_BFu15ll_BFu1i)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu1ll, aBFu33_BFu15ll_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu1s");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu1s");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu1s, aBFu33_BFu15ll_BFu1s)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu31i");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu33_BFu15ll_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu15ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu31i, aBFu33_BFu15ll_BFu31i)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu33_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu15ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu31ll, aBFu33_BFu15ll_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu32i");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu33_BFu15ll_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu15ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu32i, aBFu33_BFu15ll_BFu32i)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu33_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu15ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu32ll, aBFu33_BFu15ll_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu33()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu33");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu15ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, 1, "aBFu33_BFu15ll_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu33, aBFu33_BFu15ll_BFu33)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu7c");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15ll_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu7c, aBFu33_BFu15ll_BFu7c)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu7i");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15ll_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu7i, aBFu33_BFu15ll_BFu7i)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu7ll, aBFu33_BFu15ll_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu7s");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15ll_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu7s, aBFu33_BFu15ll_BFu7s)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu8c");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15ll_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu8c, aBFu33_BFu15ll_BFu8c)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu8i");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15ll_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu8i, aBFu33_BFu15ll_BFu8i)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu8ll, aBFu33_BFu15ll_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu8s");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15ll_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu8s, aBFu33_BFu15ll_BFu8s)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu9i");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_BFu15ll_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu15ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu9i, aBFu33_BFu15ll_BFu9i)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu15ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu9ll, aBFu33_BFu15ll_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu15ll_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu15ll_BFu9s");
    static STRUCT_IF_C aBFu33_BFu15ll_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_BFu15ll_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu15ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_BFu9s, aBFu33_BFu15ll_BFu9s)
//============================================================================



static void Test_aBFu33_BFu15ll_C()
{
  {
    init_simple_test("aBFu33_BFu15ll_C");
    static STRUCT_IF_C aBFu33_BFu15ll_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_C");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_C");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_C");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_C, aBFu33_BFu15ll_C)
//============================================================================



static void Test_aBFu33_BFu15ll_D()
{
  {
    init_simple_test("aBFu33_BFu15ll_D");
    static STRUCT_IF_C aBFu33_BFu15ll_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu15ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_D");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_D");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_D");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_D, aBFu33_BFu15ll_D)
//============================================================================



static void Test_aBFu33_BFu15ll_F()
{
  {
    init_simple_test("aBFu33_BFu15ll_F");
    static STRUCT_IF_C aBFu33_BFu15ll_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_F");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_F");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_F");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_F, aBFu33_BFu15ll_F)
//============================================================================



static void Test_aBFu33_BFu15ll_I()
{
  {
    init_simple_test("aBFu33_BFu15ll_I");
    static STRUCT_IF_C aBFu33_BFu15ll_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_I");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_I");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_I");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_I, aBFu33_BFu15ll_I)
//============================================================================



static void Test_aBFu33_BFu15ll_Ip()
{
  {
    init_simple_test("aBFu33_BFu15ll_Ip");
    static STRUCT_IF_C aBFu33_BFu15ll_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu15ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_Ip");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_Ip, aBFu33_BFu15ll_Ip)
//============================================================================



static void Test_aBFu33_BFu15ll_L()
{
  {
    init_simple_test("aBFu33_BFu15ll_L");
    static STRUCT_IF_C aBFu33_BFu15ll_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu15ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_L");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_L");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_L");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_L, aBFu33_BFu15ll_L)
//============================================================================



static void Test_aBFu33_BFu15ll_S()
{
  {
    init_simple_test("aBFu33_BFu15ll_S");
    static STRUCT_IF_C aBFu33_BFu15ll_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_S");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_S");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_S");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_S, aBFu33_BFu15ll_S)
//============================================================================



static void Test_aBFu33_BFu15ll_Uc()
{
  {
    init_simple_test("aBFu33_BFu15ll_Uc");
    static STRUCT_IF_C aBFu33_BFu15ll_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_Uc");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_Uc, aBFu33_BFu15ll_Uc)
//============================================================================



static void Test_aBFu33_BFu15ll_Ui()
{
  {
    init_simple_test("aBFu33_BFu15ll_Ui");
    static STRUCT_IF_C aBFu33_BFu15ll_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_Ui");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_Ui, aBFu33_BFu15ll_Ui)
//============================================================================



static void Test_aBFu33_BFu15ll_Ul()
{
  {
    init_simple_test("aBFu33_BFu15ll_Ul");
    static STRUCT_IF_C aBFu33_BFu15ll_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu15ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_Ul");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_Ul, aBFu33_BFu15ll_Ul)
//============================================================================



static void Test_aBFu33_BFu15ll_Us()
{
  {
    init_simple_test("aBFu33_BFu15ll_Us");
    static STRUCT_IF_C aBFu33_BFu15ll_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_Us");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_Us, aBFu33_BFu15ll_Us)
//============================================================================



static void Test_aBFu33_BFu15ll_Vp()
{
  {
    init_simple_test("aBFu33_BFu15ll_Vp");
    static STRUCT_IF_C aBFu33_BFu15ll_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu15ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15ll_Vp");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15ll_Vp, aBFu33_BFu15ll_Vp)
//============================================================================



static void Test_aBFu33_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu15s");
    static STRUCT_IF_C aBFu33_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s, aBFu33_BFu15s)
//============================================================================



static void Test_aBFu33_BFu15s_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu15i");
    static STRUCT_IF_C aBFu33_BFu15s_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_BFu15s_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu15i, aBFu33_BFu15s_BFu15i)
//============================================================================



static void Test_aBFu33_BFu15s_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu15s_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_BFu15s_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu15ll, aBFu33_BFu15s_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu15s_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu15s");
    static STRUCT_IF_C aBFu33_BFu15s_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_BFu15s_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu15s, aBFu33_BFu15s_BFu15s)
//============================================================================



static void Test_aBFu33_BFu15s_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu16i");
    static STRUCT_IF_C aBFu33_BFu15s_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_BFu15s_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu15s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu16i, aBFu33_BFu15s_BFu16i)
//============================================================================



static void Test_aBFu33_BFu15s_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu15s_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_BFu15s_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu15s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu16ll, aBFu33_BFu15s_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu15s_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu16s");
    static STRUCT_IF_C aBFu33_BFu15s_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_BFu15s_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu15s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu16s, aBFu33_BFu15s_BFu16s)
//============================================================================



static void Test_aBFu33_BFu15s_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu17i");
    static STRUCT_IF_C aBFu33_BFu15s_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu15s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu33_BFu15s_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu15s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu17i, aBFu33_BFu15s_BFu17i)
//============================================================================



static void Test_aBFu33_BFu15s_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu15s_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu15s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu33_BFu15s_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu15s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu17ll, aBFu33_BFu15s_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu15s_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu1c");
    static STRUCT_IF_C aBFu33_BFu15s_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu1c");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu1c, aBFu33_BFu15s_BFu1c)
//============================================================================



static void Test_aBFu33_BFu15s_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu1i");
    static STRUCT_IF_C aBFu33_BFu15s_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu1i");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu1i, aBFu33_BFu15s_BFu1i)
//============================================================================



static void Test_aBFu33_BFu15s_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu15s_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu1ll");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu1ll, aBFu33_BFu15s_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu15s_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu1s");
    static STRUCT_IF_C aBFu33_BFu15s_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu1s");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_BFu15s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu1s, aBFu33_BFu15s_BFu1s)
//============================================================================



static void Test_aBFu33_BFu15s_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu31i");
    static STRUCT_IF_C aBFu33_BFu15s_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu33_BFu15s_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu15s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu31i, aBFu33_BFu15s_BFu31i)
//============================================================================



static void Test_aBFu33_BFu15s_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu15s_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu33_BFu15s_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu15s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu31ll, aBFu33_BFu15s_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu15s_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu32i");
    static STRUCT_IF_C aBFu33_BFu15s_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu33_BFu15s_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu15s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu32i, aBFu33_BFu15s_BFu32i)
//============================================================================



static void Test_aBFu33_BFu15s_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu15s_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu33_BFu15s_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu15s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu32ll, aBFu33_BFu15s_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu15s_BFu33()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu33");
    static STRUCT_IF_C aBFu33_BFu15s_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu15s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, 1, "aBFu33_BFu15s_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu33, aBFu33_BFu15s_BFu33)
//============================================================================



static void Test_aBFu33_BFu15s_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu7c");
    static STRUCT_IF_C aBFu33_BFu15s_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15s_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu7c, aBFu33_BFu15s_BFu7c)
//============================================================================



static void Test_aBFu33_BFu15s_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu7i");
    static STRUCT_IF_C aBFu33_BFu15s_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15s_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu7i, aBFu33_BFu15s_BFu7i)
//============================================================================



static void Test_aBFu33_BFu15s_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu15s_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15s_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu7ll, aBFu33_BFu15s_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu15s_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu7s");
    static STRUCT_IF_C aBFu33_BFu15s_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_BFu15s_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu15s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu7s, aBFu33_BFu15s_BFu7s)
//============================================================================



static void Test_aBFu33_BFu15s_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu8c");
    static STRUCT_IF_C aBFu33_BFu15s_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15s_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu8c, aBFu33_BFu15s_BFu8c)
//============================================================================



static void Test_aBFu33_BFu15s_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu8i");
    static STRUCT_IF_C aBFu33_BFu15s_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15s_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu8i, aBFu33_BFu15s_BFu8i)
//============================================================================



static void Test_aBFu33_BFu15s_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu15s_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15s_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu8ll, aBFu33_BFu15s_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu15s_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu8s");
    static STRUCT_IF_C aBFu33_BFu15s_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_BFu15s_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu15s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu8s, aBFu33_BFu15s_BFu8s)
//============================================================================



static void Test_aBFu33_BFu15s_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu9i");
    static STRUCT_IF_C aBFu33_BFu15s_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_BFu15s_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu15s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu9i, aBFu33_BFu15s_BFu9i)
//============================================================================



static void Test_aBFu33_BFu15s_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu15s_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_BFu15s_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu15s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu9ll, aBFu33_BFu15s_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu15s_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu15s_BFu9s");
    static STRUCT_IF_C aBFu33_BFu15s_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_BFu15s_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu15s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_BFu9s, aBFu33_BFu15s_BFu9s)
//============================================================================



static void Test_aBFu33_BFu15s_C()
{
  {
    init_simple_test("aBFu33_BFu15s_C");
    static STRUCT_IF_C aBFu33_BFu15s_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_C");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_C");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_C");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_C, aBFu33_BFu15s_C)
//============================================================================



static void Test_aBFu33_BFu15s_D()
{
  {
    init_simple_test("aBFu33_BFu15s_D");
    static STRUCT_IF_C aBFu33_BFu15s_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu15s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_D");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_D");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_D");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_D, aBFu33_BFu15s_D)
//============================================================================



static void Test_aBFu33_BFu15s_F()
{
  {
    init_simple_test("aBFu33_BFu15s_F");
    static STRUCT_IF_C aBFu33_BFu15s_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_F");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_F");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_F");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_F, aBFu33_BFu15s_F)
//============================================================================



static void Test_aBFu33_BFu15s_I()
{
  {
    init_simple_test("aBFu33_BFu15s_I");
    static STRUCT_IF_C aBFu33_BFu15s_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_I");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_I");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_I");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_I, aBFu33_BFu15s_I)
//============================================================================



static void Test_aBFu33_BFu15s_Ip()
{
  {
    init_simple_test("aBFu33_BFu15s_Ip");
    static STRUCT_IF_C aBFu33_BFu15s_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu15s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_Ip");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_Ip");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_Ip");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_Ip, aBFu33_BFu15s_Ip)
//============================================================================



static void Test_aBFu33_BFu15s_L()
{
  {
    init_simple_test("aBFu33_BFu15s_L");
    static STRUCT_IF_C aBFu33_BFu15s_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu15s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_L");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_L");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_L");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_L, aBFu33_BFu15s_L)
//============================================================================



static void Test_aBFu33_BFu15s_S()
{
  {
    init_simple_test("aBFu33_BFu15s_S");
    static STRUCT_IF_C aBFu33_BFu15s_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_S");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_S");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_S");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_S, aBFu33_BFu15s_S)
//============================================================================



static void Test_aBFu33_BFu15s_Uc()
{
  {
    init_simple_test("aBFu33_BFu15s_Uc");
    static STRUCT_IF_C aBFu33_BFu15s_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu15s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_Uc");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_Uc");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_Uc");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_Uc, aBFu33_BFu15s_Uc)
//============================================================================



static void Test_aBFu33_BFu15s_Ui()
{
  {
    init_simple_test("aBFu33_BFu15s_Ui");
    static STRUCT_IF_C aBFu33_BFu15s_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu15s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_Ui");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_Ui");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_Ui");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_Ui, aBFu33_BFu15s_Ui)
//============================================================================



static void Test_aBFu33_BFu15s_Ul()
{
  {
    init_simple_test("aBFu33_BFu15s_Ul");
    static STRUCT_IF_C aBFu33_BFu15s_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu15s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_Ul");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_Ul");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_Ul");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_Ul, aBFu33_BFu15s_Ul)
//============================================================================



static void Test_aBFu33_BFu15s_Us()
{
  {
    init_simple_test("aBFu33_BFu15s_Us");
    static STRUCT_IF_C aBFu33_BFu15s_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu15s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_Us");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_Us");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_Us");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_Us, aBFu33_BFu15s_Us)
//============================================================================



static void Test_aBFu33_BFu15s_Vp()
{
  {
    init_simple_test("aBFu33_BFu15s_Vp");
    static STRUCT_IF_C aBFu33_BFu15s_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu15s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu15s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu15s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu15s_Vp");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu33_BFu15s_Vp");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu15s_Vp");
    check_field_offset(lv, v3, 6, "aBFu33_BFu15s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu15s_Vp, aBFu33_BFu15s_Vp)
//============================================================================



static void Test_aBFu33_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu16i");
    static STRUCT_IF_C aBFu33_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i, aBFu33_BFu16i)
//============================================================================



static void Test_aBFu33_BFu16i_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu15i");
    static STRUCT_IF_C aBFu33_BFu16i_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu15i");
    set_bf_and_test(lv, v3, 6, 1, 15, 1, "aBFu33_BFu16i_BFu15i");
    set_bf_and_test(lv, v3, 6, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu16i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu15i, aBFu33_BFu16i_BFu15i)
//============================================================================



static void Test_aBFu33_BFu16i_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu16i_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu15ll");
    set_bf_and_test(lv, v3, 6, 1, 15, 1, "aBFu33_BFu16i_BFu15ll");
    set_bf_and_test(lv, v3, 6, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu16i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu15ll, aBFu33_BFu16i_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu16i_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu15s");
    static STRUCT_IF_C aBFu33_BFu16i_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu15s");
    set_bf_and_test(lv, v3, 6, 1, 15, 1, "aBFu33_BFu16i_BFu15s");
    set_bf_and_test(lv, v3, 6, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu16i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu15s, aBFu33_BFu16i_BFu15s)
//============================================================================



static void Test_aBFu33_BFu16i_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu16i");
    static STRUCT_IF_C aBFu33_BFu16i_BFu16i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu16i");
    set_bf_and_test(lv, v3, 6, 1, 16, 1, "aBFu33_BFu16i_BFu16i");
    set_bf_and_test(lv, v3, 6, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu16i, aBFu33_BFu16i_BFu16i)
//============================================================================



static void Test_aBFu33_BFu16i_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu16i_BFu16ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu16ll");
    set_bf_and_test(lv, v3, 6, 1, 16, 1, "aBFu33_BFu16i_BFu16ll");
    set_bf_and_test(lv, v3, 6, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu16ll, aBFu33_BFu16i_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu16i_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu16s");
    static STRUCT_IF_C aBFu33_BFu16i_BFu16s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu16s");
    set_bf_and_test(lv, v3, 6, 1, 16, 1, "aBFu33_BFu16i_BFu16s");
    set_bf_and_test(lv, v3, 6, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu16s, aBFu33_BFu16i_BFu16s)
//============================================================================



static void Test_aBFu33_BFu16i_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu17i");
    static STRUCT_IF_C aBFu33_BFu16i_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu17i");
    set_bf_and_test(lv, v3, 6, 1, 17, 1, "aBFu33_BFu16i_BFu17i");
    set_bf_and_test(lv, v3, 6, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu16i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu17i, aBFu33_BFu16i_BFu17i)
//============================================================================



static void Test_aBFu33_BFu16i_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu16i_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu17ll");
    set_bf_and_test(lv, v3, 6, 1, 17, 1, "aBFu33_BFu16i_BFu17ll");
    set_bf_and_test(lv, v3, 6, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu16i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu17ll, aBFu33_BFu16i_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu16i_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu1c");
    static STRUCT_IF_C aBFu33_BFu16i_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu1c");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu1c, aBFu33_BFu16i_BFu1c)
//============================================================================



static void Test_aBFu33_BFu16i_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu1i");
    static STRUCT_IF_C aBFu33_BFu16i_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu1i");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu1i, aBFu33_BFu16i_BFu1i)
//============================================================================



static void Test_aBFu33_BFu16i_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu16i_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu1ll");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu1ll, aBFu33_BFu16i_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu16i_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu1s");
    static STRUCT_IF_C aBFu33_BFu16i_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu1s");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu1s, aBFu33_BFu16i_BFu1s)
//============================================================================



static void Test_aBFu33_BFu16i_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu31i");
    static STRUCT_IF_C aBFu33_BFu16i_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu16i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu31i");
    set_bf_and_test(lv, v3, 6, 1, 31, 1, "aBFu33_BFu16i_BFu31i");
    set_bf_and_test(lv, v3, 6, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu16i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu31i, aBFu33_BFu16i_BFu31i)
//============================================================================



static void Test_aBFu33_BFu16i_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu16i_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu16i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu31ll");
    set_bf_and_test(lv, v3, 6, 1, 31, 1, "aBFu33_BFu16i_BFu31ll");
    set_bf_and_test(lv, v3, 6, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu16i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu31ll, aBFu33_BFu16i_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu16i_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu32i");
    static STRUCT_IF_C aBFu33_BFu16i_BFu32i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu32i");
    set_bf_and_test(lv, v3, 6, 1, 32, 1, "aBFu33_BFu16i_BFu32i");
    set_bf_and_test(lv, v3, 6, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu16i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu32i, aBFu33_BFu16i_BFu32i)
//============================================================================



static void Test_aBFu33_BFu16i_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu16i_BFu32ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu32ll");
    set_bf_and_test(lv, v3, 6, 1, 32, 1, "aBFu33_BFu16i_BFu32ll");
    set_bf_and_test(lv, v3, 6, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu16i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu32ll, aBFu33_BFu16i_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu16i_BFu33()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu33");
    static STRUCT_IF_C aBFu33_BFu16i_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu33");
    set_bf_and_test(lv, v3, 6, 1, 33, 1, "aBFu33_BFu16i_BFu33");
    set_bf_and_test(lv, v3, 6, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu33, aBFu33_BFu16i_BFu33)
//============================================================================



static void Test_aBFu33_BFu16i_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu7c");
    static STRUCT_IF_C aBFu33_BFu16i_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu7c");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16i_BFu7c");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu7c, aBFu33_BFu16i_BFu7c)
//============================================================================



static void Test_aBFu33_BFu16i_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu7i");
    static STRUCT_IF_C aBFu33_BFu16i_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu7i");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16i_BFu7i");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu7i, aBFu33_BFu16i_BFu7i)
//============================================================================



static void Test_aBFu33_BFu16i_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu16i_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu7ll");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16i_BFu7ll");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu7ll, aBFu33_BFu16i_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu16i_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu7s");
    static STRUCT_IF_C aBFu33_BFu16i_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu7s");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16i_BFu7s");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu7s, aBFu33_BFu16i_BFu7s)
//============================================================================



static void Test_aBFu33_BFu16i_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu8c");
    static STRUCT_IF_C aBFu33_BFu16i_BFu8c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu8c");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16i_BFu8c");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu8c, aBFu33_BFu16i_BFu8c)
//============================================================================



static void Test_aBFu33_BFu16i_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu8i");
    static STRUCT_IF_C aBFu33_BFu16i_BFu8i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu8i");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16i_BFu8i");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu8i, aBFu33_BFu16i_BFu8i)
//============================================================================



static void Test_aBFu33_BFu16i_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu16i_BFu8ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu8ll");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16i_BFu8ll");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu8ll, aBFu33_BFu16i_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu16i_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu8s");
    static STRUCT_IF_C aBFu33_BFu16i_BFu8s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu8s");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16i_BFu8s");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu8s, aBFu33_BFu16i_BFu8s)
//============================================================================



static void Test_aBFu33_BFu16i_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu9i");
    static STRUCT_IF_C aBFu33_BFu16i_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu9i");
    set_bf_and_test(lv, v3, 6, 1, 9, 1, "aBFu33_BFu16i_BFu9i");
    set_bf_and_test(lv, v3, 6, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu16i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu9i, aBFu33_BFu16i_BFu9i)
//============================================================================



static void Test_aBFu33_BFu16i_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu16i_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu9ll");
    set_bf_and_test(lv, v3, 6, 1, 9, 1, "aBFu33_BFu16i_BFu9ll");
    set_bf_and_test(lv, v3, 6, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu16i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu9ll, aBFu33_BFu16i_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu16i_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu16i_BFu9s");
    static STRUCT_IF_C aBFu33_BFu16i_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_BFu9s");
    set_bf_and_test(lv, v3, 6, 1, 9, 1, "aBFu33_BFu16i_BFu9s");
    set_bf_and_test(lv, v3, 6, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu16i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_BFu9s, aBFu33_BFu16i_BFu9s)
//============================================================================



static void Test_aBFu33_BFu16i_C()
{
  {
    init_simple_test("aBFu33_BFu16i_C");
    static STRUCT_IF_C aBFu33_BFu16i_C lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_C");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_C");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_C");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_C, aBFu33_BFu16i_C)
//============================================================================



static void Test_aBFu33_BFu16i_D()
{
  {
    init_simple_test("aBFu33_BFu16i_D");
    static STRUCT_IF_C aBFu33_BFu16i_D lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu16i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_D");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_D");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_D");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_D, aBFu33_BFu16i_D)
//============================================================================



static void Test_aBFu33_BFu16i_F()
{
  {
    init_simple_test("aBFu33_BFu16i_F");
    static STRUCT_IF_C aBFu33_BFu16i_F lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_F");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_F");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_F");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_F, aBFu33_BFu16i_F)
//============================================================================



static void Test_aBFu33_BFu16i_I()
{
  {
    init_simple_test("aBFu33_BFu16i_I");
    static STRUCT_IF_C aBFu33_BFu16i_I lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_I");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_I");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_I");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_I, aBFu33_BFu16i_I)
//============================================================================



static void Test_aBFu33_BFu16i_Ip()
{
  {
    init_simple_test("aBFu33_BFu16i_Ip");
    static STRUCT_IF_C aBFu33_BFu16i_Ip lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_BFu16i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_Ip");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_Ip, aBFu33_BFu16i_Ip)
//============================================================================



static void Test_aBFu33_BFu16i_L()
{
  {
    init_simple_test("aBFu33_BFu16i_L");
    static STRUCT_IF_C aBFu33_BFu16i_L lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu16i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_L");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_L");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_L");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_L, aBFu33_BFu16i_L)
//============================================================================



static void Test_aBFu33_BFu16i_S()
{
  {
    init_simple_test("aBFu33_BFu16i_S");
    static STRUCT_IF_C aBFu33_BFu16i_S lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_S");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_S");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_S");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_S, aBFu33_BFu16i_S)
//============================================================================



static void Test_aBFu33_BFu16i_Uc()
{
  {
    init_simple_test("aBFu33_BFu16i_Uc");
    static STRUCT_IF_C aBFu33_BFu16i_Uc lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_Uc");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_Uc, aBFu33_BFu16i_Uc)
//============================================================================



static void Test_aBFu33_BFu16i_Ui()
{
  {
    init_simple_test("aBFu33_BFu16i_Ui");
    static STRUCT_IF_C aBFu33_BFu16i_Ui lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_Ui");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_Ui, aBFu33_BFu16i_Ui)
//============================================================================



static void Test_aBFu33_BFu16i_Ul()
{
  {
    init_simple_test("aBFu33_BFu16i_Ul");
    static STRUCT_IF_C aBFu33_BFu16i_Ul lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu16i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_Ul");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_Ul, aBFu33_BFu16i_Ul)
//============================================================================



static void Test_aBFu33_BFu16i_Us()
{
  {
    init_simple_test("aBFu33_BFu16i_Us");
    static STRUCT_IF_C aBFu33_BFu16i_Us lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_Us");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_Us");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_Us");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_Us, aBFu33_BFu16i_Us)
//============================================================================



static void Test_aBFu33_BFu16i_Vp()
{
  {
    init_simple_test("aBFu33_BFu16i_Vp");
    static STRUCT_IF_C aBFu33_BFu16i_Vp lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_BFu16i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16i_Vp");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16i_Vp, aBFu33_BFu16i_Vp)
//============================================================================



static void Test_aBFu33_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll, aBFu33_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu15i");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu15i");
    set_bf_and_test(lv, v3, 6, 1, 15, 1, "aBFu33_BFu16ll_BFu15i");
    set_bf_and_test(lv, v3, 6, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu16ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu15i, aBFu33_BFu16ll_BFu15i)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v3, 6, 1, 15, 1, "aBFu33_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v3, 6, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu16ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu15ll, aBFu33_BFu16ll_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu15s");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu15s");
    set_bf_and_test(lv, v3, 6, 1, 15, 1, "aBFu33_BFu16ll_BFu15s");
    set_bf_and_test(lv, v3, 6, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu16ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu15s, aBFu33_BFu16ll_BFu15s)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu16i");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu16i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu16i");
    set_bf_and_test(lv, v3, 6, 1, 16, 1, "aBFu33_BFu16ll_BFu16i");
    set_bf_and_test(lv, v3, 6, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu16i, aBFu33_BFu16ll_BFu16i)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu16ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v3, 6, 1, 16, 1, "aBFu33_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v3, 6, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu16ll, aBFu33_BFu16ll_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu16s");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu16s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu16s");
    set_bf_and_test(lv, v3, 6, 1, 16, 1, "aBFu33_BFu16ll_BFu16s");
    set_bf_and_test(lv, v3, 6, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu16s, aBFu33_BFu16ll_BFu16s)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu17i");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu17i");
    set_bf_and_test(lv, v3, 6, 1, 17, 1, "aBFu33_BFu16ll_BFu17i");
    set_bf_and_test(lv, v3, 6, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu16ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu17i, aBFu33_BFu16ll_BFu17i)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v3, 6, 1, 17, 1, "aBFu33_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v3, 6, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu16ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu17ll, aBFu33_BFu16ll_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu1c");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu1c");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu1c, aBFu33_BFu16ll_BFu1c)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu1i");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu1i");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu1i, aBFu33_BFu16ll_BFu1i)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu1ll, aBFu33_BFu16ll_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu1s");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu1s");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu1s, aBFu33_BFu16ll_BFu1s)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu31i");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu16ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu31i");
    set_bf_and_test(lv, v3, 6, 1, 31, 1, "aBFu33_BFu16ll_BFu31i");
    set_bf_and_test(lv, v3, 6, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu16ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu31i, aBFu33_BFu16ll_BFu31i)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu16ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v3, 6, 1, 31, 1, "aBFu33_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v3, 6, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu16ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu31ll, aBFu33_BFu16ll_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu32i");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu32i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu32i");
    set_bf_and_test(lv, v3, 6, 1, 32, 1, "aBFu33_BFu16ll_BFu32i");
    set_bf_and_test(lv, v3, 6, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu16ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu32i, aBFu33_BFu16ll_BFu32i)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu32ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v3, 6, 1, 32, 1, "aBFu33_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v3, 6, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu16ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu32ll, aBFu33_BFu16ll_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu33()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu33");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu33");
    set_bf_and_test(lv, v3, 6, 1, 33, 1, "aBFu33_BFu16ll_BFu33");
    set_bf_and_test(lv, v3, 6, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu33, aBFu33_BFu16ll_BFu33)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu7c");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu7c");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16ll_BFu7c");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu7c, aBFu33_BFu16ll_BFu7c)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu7i");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu7i");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16ll_BFu7i");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu7i, aBFu33_BFu16ll_BFu7i)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu7ll, aBFu33_BFu16ll_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu7s");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu7s");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16ll_BFu7s");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu7s, aBFu33_BFu16ll_BFu7s)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu8c");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu8c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu8c");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16ll_BFu8c");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu8c, aBFu33_BFu16ll_BFu8c)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu8i");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu8i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu8i");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16ll_BFu8i");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu8i, aBFu33_BFu16ll_BFu8i)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu8ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu8ll, aBFu33_BFu16ll_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu8s");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu8s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu8s");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16ll_BFu8s");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu8s, aBFu33_BFu16ll_BFu8s)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu9i");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu9i");
    set_bf_and_test(lv, v3, 6, 1, 9, 1, "aBFu33_BFu16ll_BFu9i");
    set_bf_and_test(lv, v3, 6, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu16ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu9i, aBFu33_BFu16ll_BFu9i)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v3, 6, 1, 9, 1, "aBFu33_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v3, 6, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu16ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu9ll, aBFu33_BFu16ll_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu16ll_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu16ll_BFu9s");
    static STRUCT_IF_C aBFu33_BFu16ll_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_BFu9s");
    set_bf_and_test(lv, v3, 6, 1, 9, 1, "aBFu33_BFu16ll_BFu9s");
    set_bf_and_test(lv, v3, 6, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu16ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_BFu9s, aBFu33_BFu16ll_BFu9s)
//============================================================================



static void Test_aBFu33_BFu16ll_C()
{
  {
    init_simple_test("aBFu33_BFu16ll_C");
    static STRUCT_IF_C aBFu33_BFu16ll_C lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_C");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_C");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_C");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_C, aBFu33_BFu16ll_C)
//============================================================================



static void Test_aBFu33_BFu16ll_D()
{
  {
    init_simple_test("aBFu33_BFu16ll_D");
    static STRUCT_IF_C aBFu33_BFu16ll_D lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu16ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_D");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_D");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_D");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_D, aBFu33_BFu16ll_D)
//============================================================================



static void Test_aBFu33_BFu16ll_F()
{
  {
    init_simple_test("aBFu33_BFu16ll_F");
    static STRUCT_IF_C aBFu33_BFu16ll_F lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_F");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_F");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_F");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_F, aBFu33_BFu16ll_F)
//============================================================================



static void Test_aBFu33_BFu16ll_I()
{
  {
    init_simple_test("aBFu33_BFu16ll_I");
    static STRUCT_IF_C aBFu33_BFu16ll_I lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_I");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_I");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_I");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_I, aBFu33_BFu16ll_I)
//============================================================================



static void Test_aBFu33_BFu16ll_Ip()
{
  {
    init_simple_test("aBFu33_BFu16ll_Ip");
    static STRUCT_IF_C aBFu33_BFu16ll_Ip lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_BFu16ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_Ip");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_Ip, aBFu33_BFu16ll_Ip)
//============================================================================



static void Test_aBFu33_BFu16ll_L()
{
  {
    init_simple_test("aBFu33_BFu16ll_L");
    static STRUCT_IF_C aBFu33_BFu16ll_L lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu16ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_L");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_L");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_L");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_L, aBFu33_BFu16ll_L)
//============================================================================



static void Test_aBFu33_BFu16ll_S()
{
  {
    init_simple_test("aBFu33_BFu16ll_S");
    static STRUCT_IF_C aBFu33_BFu16ll_S lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_S");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_S");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_S");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_S, aBFu33_BFu16ll_S)
//============================================================================



static void Test_aBFu33_BFu16ll_Uc()
{
  {
    init_simple_test("aBFu33_BFu16ll_Uc");
    static STRUCT_IF_C aBFu33_BFu16ll_Uc lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_Uc");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_Uc, aBFu33_BFu16ll_Uc)
//============================================================================



static void Test_aBFu33_BFu16ll_Ui()
{
  {
    init_simple_test("aBFu33_BFu16ll_Ui");
    static STRUCT_IF_C aBFu33_BFu16ll_Ui lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_Ui");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_Ui, aBFu33_BFu16ll_Ui)
//============================================================================



static void Test_aBFu33_BFu16ll_Ul()
{
  {
    init_simple_test("aBFu33_BFu16ll_Ul");
    static STRUCT_IF_C aBFu33_BFu16ll_Ul lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu16ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_Ul");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_Ul, aBFu33_BFu16ll_Ul)
//============================================================================



static void Test_aBFu33_BFu16ll_Us()
{
  {
    init_simple_test("aBFu33_BFu16ll_Us");
    static STRUCT_IF_C aBFu33_BFu16ll_Us lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_Us");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_Us, aBFu33_BFu16ll_Us)
//============================================================================



static void Test_aBFu33_BFu16ll_Vp()
{
  {
    init_simple_test("aBFu33_BFu16ll_Vp");
    static STRUCT_IF_C aBFu33_BFu16ll_Vp lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_BFu16ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16ll_Vp");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16ll_Vp, aBFu33_BFu16ll_Vp)
//============================================================================



static void Test_aBFu33_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu16s");
    static STRUCT_IF_C aBFu33_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s, aBFu33_BFu16s)
//============================================================================



static void Test_aBFu33_BFu16s_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu15i");
    static STRUCT_IF_C aBFu33_BFu16s_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu15i");
    set_bf_and_test(lv, v3, 6, 1, 15, 1, "aBFu33_BFu16s_BFu15i");
    set_bf_and_test(lv, v3, 6, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu16s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu15i, aBFu33_BFu16s_BFu15i)
//============================================================================



static void Test_aBFu33_BFu16s_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu16s_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu15ll");
    set_bf_and_test(lv, v3, 6, 1, 15, 1, "aBFu33_BFu16s_BFu15ll");
    set_bf_and_test(lv, v3, 6, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu16s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu15ll, aBFu33_BFu16s_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu16s_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu15s");
    static STRUCT_IF_C aBFu33_BFu16s_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu15s");
    set_bf_and_test(lv, v3, 6, 1, 15, 1, "aBFu33_BFu16s_BFu15s");
    set_bf_and_test(lv, v3, 6, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu16s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu15s, aBFu33_BFu16s_BFu15s)
//============================================================================



static void Test_aBFu33_BFu16s_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu16i");
    static STRUCT_IF_C aBFu33_BFu16s_BFu16i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu16i");
    set_bf_and_test(lv, v3, 6, 1, 16, 1, "aBFu33_BFu16s_BFu16i");
    set_bf_and_test(lv, v3, 6, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu16i, aBFu33_BFu16s_BFu16i)
//============================================================================



static void Test_aBFu33_BFu16s_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu16s_BFu16ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu16ll");
    set_bf_and_test(lv, v3, 6, 1, 16, 1, "aBFu33_BFu16s_BFu16ll");
    set_bf_and_test(lv, v3, 6, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu16ll, aBFu33_BFu16s_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu16s_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu16s");
    static STRUCT_IF_C aBFu33_BFu16s_BFu16s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu16s");
    set_bf_and_test(lv, v3, 6, 1, 16, 1, "aBFu33_BFu16s_BFu16s");
    set_bf_and_test(lv, v3, 6, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu16s, aBFu33_BFu16s_BFu16s)
//============================================================================



static void Test_aBFu33_BFu16s_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu17i");
    static STRUCT_IF_C aBFu33_BFu16s_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu17i");
    set_bf_and_test(lv, v3, 6, 1, 17, 1, "aBFu33_BFu16s_BFu17i");
    set_bf_and_test(lv, v3, 6, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu16s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu17i, aBFu33_BFu16s_BFu17i)
//============================================================================



static void Test_aBFu33_BFu16s_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu16s_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu17ll");
    set_bf_and_test(lv, v3, 6, 1, 17, 1, "aBFu33_BFu16s_BFu17ll");
    set_bf_and_test(lv, v3, 6, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu16s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu17ll, aBFu33_BFu16s_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu16s_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu1c");
    static STRUCT_IF_C aBFu33_BFu16s_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu1c");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu1c, aBFu33_BFu16s_BFu1c)
//============================================================================



static void Test_aBFu33_BFu16s_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu1i");
    static STRUCT_IF_C aBFu33_BFu16s_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu1i");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu1i, aBFu33_BFu16s_BFu1i)
//============================================================================



static void Test_aBFu33_BFu16s_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu16s_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu1ll");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu1ll, aBFu33_BFu16s_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu16s_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu1s");
    static STRUCT_IF_C aBFu33_BFu16s_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu1s");
    set_bf_and_test(lv, v3, 6, 1, 1, 1, "aBFu33_BFu16s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu1s, aBFu33_BFu16s_BFu1s)
//============================================================================



static void Test_aBFu33_BFu16s_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu31i");
    static STRUCT_IF_C aBFu33_BFu16s_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu16s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu31i");
    set_bf_and_test(lv, v3, 6, 1, 31, 1, "aBFu33_BFu16s_BFu31i");
    set_bf_and_test(lv, v3, 6, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu16s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu31i, aBFu33_BFu16s_BFu31i)
//============================================================================



static void Test_aBFu33_BFu16s_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu16s_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu16s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu31ll");
    set_bf_and_test(lv, v3, 6, 1, 31, 1, "aBFu33_BFu16s_BFu31ll");
    set_bf_and_test(lv, v3, 6, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu16s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu31ll, aBFu33_BFu16s_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu16s_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu32i");
    static STRUCT_IF_C aBFu33_BFu16s_BFu32i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu32i");
    set_bf_and_test(lv, v3, 6, 1, 32, 1, "aBFu33_BFu16s_BFu32i");
    set_bf_and_test(lv, v3, 6, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu16s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu32i, aBFu33_BFu16s_BFu32i)
//============================================================================



static void Test_aBFu33_BFu16s_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu16s_BFu32ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu32ll");
    set_bf_and_test(lv, v3, 6, 1, 32, 1, "aBFu33_BFu16s_BFu32ll");
    set_bf_and_test(lv, v3, 6, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu16s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu32ll, aBFu33_BFu16s_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu16s_BFu33()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu33");
    static STRUCT_IF_C aBFu33_BFu16s_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu33");
    set_bf_and_test(lv, v3, 6, 1, 33, 1, "aBFu33_BFu16s_BFu33");
    set_bf_and_test(lv, v3, 6, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu33, aBFu33_BFu16s_BFu33)
//============================================================================



static void Test_aBFu33_BFu16s_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu7c");
    static STRUCT_IF_C aBFu33_BFu16s_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu7c");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16s_BFu7c");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu7c, aBFu33_BFu16s_BFu7c)
//============================================================================



static void Test_aBFu33_BFu16s_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu7i");
    static STRUCT_IF_C aBFu33_BFu16s_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu7i");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16s_BFu7i");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu7i, aBFu33_BFu16s_BFu7i)
//============================================================================



static void Test_aBFu33_BFu16s_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu16s_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu7ll");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16s_BFu7ll");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu7ll, aBFu33_BFu16s_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu16s_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu7s");
    static STRUCT_IF_C aBFu33_BFu16s_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu16s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu7s");
    set_bf_and_test(lv, v3, 6, 1, 7, 1, "aBFu33_BFu16s_BFu7s");
    set_bf_and_test(lv, v3, 6, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu16s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu7s, aBFu33_BFu16s_BFu7s)
//============================================================================



static void Test_aBFu33_BFu16s_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu8c");
    static STRUCT_IF_C aBFu33_BFu16s_BFu8c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu8c");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16s_BFu8c");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu8c, aBFu33_BFu16s_BFu8c)
//============================================================================



static void Test_aBFu33_BFu16s_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu8i");
    static STRUCT_IF_C aBFu33_BFu16s_BFu8i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu8i");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16s_BFu8i");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu8i, aBFu33_BFu16s_BFu8i)
//============================================================================



static void Test_aBFu33_BFu16s_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu16s_BFu8ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu8ll");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16s_BFu8ll");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu8ll, aBFu33_BFu16s_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu16s_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu8s");
    static STRUCT_IF_C aBFu33_BFu16s_BFu8s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu8s");
    set_bf_and_test(lv, v3, 6, 1, 8, 1, "aBFu33_BFu16s_BFu8s");
    set_bf_and_test(lv, v3, 6, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu16s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu8s, aBFu33_BFu16s_BFu8s)
//============================================================================



static void Test_aBFu33_BFu16s_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu9i");
    static STRUCT_IF_C aBFu33_BFu16s_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu9i");
    set_bf_and_test(lv, v3, 6, 1, 9, 1, "aBFu33_BFu16s_BFu9i");
    set_bf_and_test(lv, v3, 6, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu16s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu9i, aBFu33_BFu16s_BFu9i)
//============================================================================



static void Test_aBFu33_BFu16s_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu16s_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu9ll");
    set_bf_and_test(lv, v3, 6, 1, 9, 1, "aBFu33_BFu16s_BFu9ll");
    set_bf_and_test(lv, v3, 6, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu16s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu9ll, aBFu33_BFu16s_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu16s_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu16s_BFu9s");
    static STRUCT_IF_C aBFu33_BFu16s_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_BFu9s");
    set_bf_and_test(lv, v3, 6, 1, 9, 1, "aBFu33_BFu16s_BFu9s");
    set_bf_and_test(lv, v3, 6, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu16s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_BFu9s, aBFu33_BFu16s_BFu9s)
//============================================================================



static void Test_aBFu33_BFu16s_C()
{
  {
    init_simple_test("aBFu33_BFu16s_C");
    static STRUCT_IF_C aBFu33_BFu16s_C lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_C");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_C");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_C");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_C, aBFu33_BFu16s_C)
//============================================================================



static void Test_aBFu33_BFu16s_D()
{
  {
    init_simple_test("aBFu33_BFu16s_D");
    static STRUCT_IF_C aBFu33_BFu16s_D lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu16s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_D");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_D");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_D");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_D, aBFu33_BFu16s_D)
//============================================================================



static void Test_aBFu33_BFu16s_F()
{
  {
    init_simple_test("aBFu33_BFu16s_F");
    static STRUCT_IF_C aBFu33_BFu16s_F lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_F");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_F");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_F");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_F, aBFu33_BFu16s_F)
//============================================================================



static void Test_aBFu33_BFu16s_I()
{
  {
    init_simple_test("aBFu33_BFu16s_I");
    static STRUCT_IF_C aBFu33_BFu16s_I lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_I");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_I");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_I");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_I, aBFu33_BFu16s_I)
//============================================================================



static void Test_aBFu33_BFu16s_Ip()
{
  {
    init_simple_test("aBFu33_BFu16s_Ip");
    static STRUCT_IF_C aBFu33_BFu16s_Ip lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_BFu16s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_Ip");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_Ip");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_Ip");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_Ip, aBFu33_BFu16s_Ip)
//============================================================================



static void Test_aBFu33_BFu16s_L()
{
  {
    init_simple_test("aBFu33_BFu16s_L");
    static STRUCT_IF_C aBFu33_BFu16s_L lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu16s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_L");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_L");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_L");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_L, aBFu33_BFu16s_L)
//============================================================================



static void Test_aBFu33_BFu16s_S()
{
  {
    init_simple_test("aBFu33_BFu16s_S");
    static STRUCT_IF_C aBFu33_BFu16s_S lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_S");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_S");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_S");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_S, aBFu33_BFu16s_S)
//============================================================================



static void Test_aBFu33_BFu16s_Uc()
{
  {
    init_simple_test("aBFu33_BFu16s_Uc");
    static STRUCT_IF_C aBFu33_BFu16s_Uc lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu16s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_Uc");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_Uc");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_Uc");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_Uc, aBFu33_BFu16s_Uc)
//============================================================================



static void Test_aBFu33_BFu16s_Ui()
{
  {
    init_simple_test("aBFu33_BFu16s_Ui");
    static STRUCT_IF_C aBFu33_BFu16s_Ui lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu16s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_Ui");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_Ui");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_Ui");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_Ui, aBFu33_BFu16s_Ui)
//============================================================================



static void Test_aBFu33_BFu16s_Ul()
{
  {
    init_simple_test("aBFu33_BFu16s_Ul");
    static STRUCT_IF_C aBFu33_BFu16s_Ul lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu16s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_Ul");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_Ul");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_Ul");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_Ul, aBFu33_BFu16s_Ul)
//============================================================================



static void Test_aBFu33_BFu16s_Us()
{
  {
    init_simple_test("aBFu33_BFu16s_Us");
    static STRUCT_IF_C aBFu33_BFu16s_Us lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu16s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_Us");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_Us");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_Us");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_Us, aBFu33_BFu16s_Us)
//============================================================================



static void Test_aBFu33_BFu16s_Vp()
{
  {
    init_simple_test("aBFu33_BFu16s_Vp");
    static STRUCT_IF_C aBFu33_BFu16s_Vp lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_BFu16s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu16s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu16s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu16s_Vp");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu33_BFu16s_Vp");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu16s_Vp");
    check_field_offset(lv, v3, 7, "aBFu33_BFu16s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu16s_Vp, aBFu33_BFu16s_Vp)
//============================================================================



static void Test_aBFu33_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu17i");
    static STRUCT_IF_C aBFu33_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i, aBFu33_BFu17i)
//============================================================================



static void Test_aBFu33_BFu17i_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu15i");
    static STRUCT_IF_C aBFu33_BFu17i_BFu15i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu15i");
    set_bf_and_test(lv, v3, 6, 2, 15, 1, "aBFu33_BFu17i_BFu15i");
    set_bf_and_test(lv, v3, 6, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu17i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu15i, aBFu33_BFu17i_BFu15i)
//============================================================================



static void Test_aBFu33_BFu17i_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu17i_BFu15ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu15ll");
    set_bf_and_test(lv, v3, 6, 2, 15, 1, "aBFu33_BFu17i_BFu15ll");
    set_bf_and_test(lv, v3, 6, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu17i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu15ll, aBFu33_BFu17i_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu17i_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu15s");
    static STRUCT_IF_C aBFu33_BFu17i_BFu15s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu15s");
    set_bf_and_test(lv, v3, 6, 2, 15, 1, "aBFu33_BFu17i_BFu15s");
    set_bf_and_test(lv, v3, 6, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu17i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu15s, aBFu33_BFu17i_BFu15s)
//============================================================================



static void Test_aBFu33_BFu17i_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu16i");
    static STRUCT_IF_C aBFu33_BFu17i_BFu16i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu16i");
    set_bf_and_test(lv, v3, 6, 2, 16, 1, "aBFu33_BFu17i_BFu16i");
    set_bf_and_test(lv, v3, 6, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu17i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu16i, aBFu33_BFu17i_BFu16i)
//============================================================================



static void Test_aBFu33_BFu17i_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu17i_BFu16ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu16ll");
    set_bf_and_test(lv, v3, 6, 2, 16, 1, "aBFu33_BFu17i_BFu16ll");
    set_bf_and_test(lv, v3, 6, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu17i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu16ll, aBFu33_BFu17i_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu17i_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu16s");
    static STRUCT_IF_C aBFu33_BFu17i_BFu16s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu16s");
    set_bf_and_test(lv, v3, 6, 2, 16, 1, "aBFu33_BFu17i_BFu16s");
    set_bf_and_test(lv, v3, 6, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu17i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu16s, aBFu33_BFu17i_BFu16s)
//============================================================================



static void Test_aBFu33_BFu17i_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu17i");
    static STRUCT_IF_C aBFu33_BFu17i_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu17i");
    set_bf_and_test(lv, v3, 6, 2, 17, 1, "aBFu33_BFu17i_BFu17i");
    set_bf_and_test(lv, v3, 6, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu17i, aBFu33_BFu17i_BFu17i)
//============================================================================



static void Test_aBFu33_BFu17i_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu17i_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu17ll");
    set_bf_and_test(lv, v3, 6, 2, 17, 1, "aBFu33_BFu17i_BFu17ll");
    set_bf_and_test(lv, v3, 6, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu17ll, aBFu33_BFu17i_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu17i_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu1c");
    static STRUCT_IF_C aBFu33_BFu17i_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu17i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu1c");
    set_bf_and_test(lv, v3, 6, 2, 1, 1, "aBFu33_BFu17i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu1c, aBFu33_BFu17i_BFu1c)
//============================================================================



static void Test_aBFu33_BFu17i_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu1i");
    static STRUCT_IF_C aBFu33_BFu17i_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu17i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu1i");
    set_bf_and_test(lv, v3, 6, 2, 1, 1, "aBFu33_BFu17i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu1i, aBFu33_BFu17i_BFu1i)
//============================================================================



static void Test_aBFu33_BFu17i_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu17i_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu17i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu1ll");
    set_bf_and_test(lv, v3, 6, 2, 1, 1, "aBFu33_BFu17i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu1ll, aBFu33_BFu17i_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu17i_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu1s");
    static STRUCT_IF_C aBFu33_BFu17i_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu17i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu1s");
    set_bf_and_test(lv, v3, 6, 2, 1, 1, "aBFu33_BFu17i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu1s, aBFu33_BFu17i_BFu1s)
//============================================================================



static void Test_aBFu33_BFu17i_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu31i");
    static STRUCT_IF_C aBFu33_BFu17i_BFu31i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu31i");
    set_bf_and_test(lv, v3, 6, 2, 31, 1, "aBFu33_BFu17i_BFu31i");
    set_bf_and_test(lv, v3, 6, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu17i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu31i, aBFu33_BFu17i_BFu31i)
//============================================================================



static void Test_aBFu33_BFu17i_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu17i_BFu31ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu31ll");
    set_bf_and_test(lv, v3, 6, 2, 31, 1, "aBFu33_BFu17i_BFu31ll");
    set_bf_and_test(lv, v3, 6, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu17i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu31ll, aBFu33_BFu17i_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu17i_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu32i");
    static STRUCT_IF_C aBFu33_BFu17i_BFu32i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu32i");
    set_bf_and_test(lv, v3, 6, 2, 32, 1, "aBFu33_BFu17i_BFu32i");
    set_bf_and_test(lv, v3, 6, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu17i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu32i, aBFu33_BFu17i_BFu32i)
//============================================================================



static void Test_aBFu33_BFu17i_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu17i_BFu32ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu32ll");
    set_bf_and_test(lv, v3, 6, 2, 32, 1, "aBFu33_BFu17i_BFu32ll");
    set_bf_and_test(lv, v3, 6, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu17i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu32ll, aBFu33_BFu17i_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu17i_BFu33()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu33");
    static STRUCT_IF_C aBFu33_BFu17i_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu33");
    set_bf_and_test(lv, v3, 6, 2, 33, 1, "aBFu33_BFu17i_BFu33");
    set_bf_and_test(lv, v3, 6, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu33, aBFu33_BFu17i_BFu33)
//============================================================================



static void Test_aBFu33_BFu17i_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu7c");
    static STRUCT_IF_C aBFu33_BFu17i_BFu7c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu7c");
    set_bf_and_test(lv, v3, 6, 2, 7, 1, "aBFu33_BFu17i_BFu7c");
    set_bf_and_test(lv, v3, 6, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu17i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu7c, aBFu33_BFu17i_BFu7c)
//============================================================================



static void Test_aBFu33_BFu17i_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu7i");
    static STRUCT_IF_C aBFu33_BFu17i_BFu7i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu7i");
    set_bf_and_test(lv, v3, 6, 2, 7, 1, "aBFu33_BFu17i_BFu7i");
    set_bf_and_test(lv, v3, 6, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu17i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu7i, aBFu33_BFu17i_BFu7i)
//============================================================================



static void Test_aBFu33_BFu17i_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu17i_BFu7ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu7ll");
    set_bf_and_test(lv, v3, 6, 2, 7, 1, "aBFu33_BFu17i_BFu7ll");
    set_bf_and_test(lv, v3, 6, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu17i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu7ll, aBFu33_BFu17i_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu17i_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu7s");
    static STRUCT_IF_C aBFu33_BFu17i_BFu7s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu7s");
    set_bf_and_test(lv, v3, 6, 2, 7, 1, "aBFu33_BFu17i_BFu7s");
    set_bf_and_test(lv, v3, 6, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu17i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu7s, aBFu33_BFu17i_BFu7s)
//============================================================================



static void Test_aBFu33_BFu17i_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu8c");
    static STRUCT_IF_C aBFu33_BFu17i_BFu8c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu8c");
    set_bf_and_test(lv, v3, 6, 2, 8, 1, "aBFu33_BFu17i_BFu8c");
    set_bf_and_test(lv, v3, 6, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu17i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu8c, aBFu33_BFu17i_BFu8c)
//============================================================================



static void Test_aBFu33_BFu17i_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu8i");
    static STRUCT_IF_C aBFu33_BFu17i_BFu8i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu8i");
    set_bf_and_test(lv, v3, 6, 2, 8, 1, "aBFu33_BFu17i_BFu8i");
    set_bf_and_test(lv, v3, 6, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu17i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu8i, aBFu33_BFu17i_BFu8i)
//============================================================================



static void Test_aBFu33_BFu17i_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu17i_BFu8ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu8ll");
    set_bf_and_test(lv, v3, 6, 2, 8, 1, "aBFu33_BFu17i_BFu8ll");
    set_bf_and_test(lv, v3, 6, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu17i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu8ll, aBFu33_BFu17i_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu17i_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu8s");
    static STRUCT_IF_C aBFu33_BFu17i_BFu8s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu8s");
    set_bf_and_test(lv, v3, 6, 2, 8, 1, "aBFu33_BFu17i_BFu8s");
    set_bf_and_test(lv, v3, 6, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu17i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu8s, aBFu33_BFu17i_BFu8s)
//============================================================================



static void Test_aBFu33_BFu17i_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu9i");
    static STRUCT_IF_C aBFu33_BFu17i_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu9i");
    set_bf_and_test(lv, v3, 6, 2, 9, 1, "aBFu33_BFu17i_BFu9i");
    set_bf_and_test(lv, v3, 6, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu17i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu9i, aBFu33_BFu17i_BFu9i)
//============================================================================



static void Test_aBFu33_BFu17i_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu17i_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu9ll");
    set_bf_and_test(lv, v3, 6, 2, 9, 1, "aBFu33_BFu17i_BFu9ll");
    set_bf_and_test(lv, v3, 6, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu17i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu9ll, aBFu33_BFu17i_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu17i_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu17i_BFu9s");
    static STRUCT_IF_C aBFu33_BFu17i_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_BFu9s");
    set_bf_and_test(lv, v3, 6, 2, 9, 1, "aBFu33_BFu17i_BFu9s");
    set_bf_and_test(lv, v3, 6, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu17i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_BFu9s, aBFu33_BFu17i_BFu9s)
//============================================================================



static void Test_aBFu33_BFu17i_C()
{
  {
    init_simple_test("aBFu33_BFu17i_C");
    static STRUCT_IF_C aBFu33_BFu17i_C lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_C");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_C");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_C");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_C, aBFu33_BFu17i_C)
//============================================================================



static void Test_aBFu33_BFu17i_D()
{
  {
    init_simple_test("aBFu33_BFu17i_D");
    static STRUCT_IF_C aBFu33_BFu17i_D lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu17i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_D");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_D");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_D");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_D, aBFu33_BFu17i_D)
//============================================================================



static void Test_aBFu33_BFu17i_F()
{
  {
    init_simple_test("aBFu33_BFu17i_F");
    static STRUCT_IF_C aBFu33_BFu17i_F lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_F");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_F");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_F");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_F, aBFu33_BFu17i_F)
//============================================================================



static void Test_aBFu33_BFu17i_I()
{
  {
    init_simple_test("aBFu33_BFu17i_I");
    static STRUCT_IF_C aBFu33_BFu17i_I lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_I");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_I");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_I");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_I, aBFu33_BFu17i_I)
//============================================================================



static void Test_aBFu33_BFu17i_Ip()
{
  {
    init_simple_test("aBFu33_BFu17i_Ip");
    static STRUCT_IF_C aBFu33_BFu17i_Ip lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_BFu17i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_Ip");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_Ip, aBFu33_BFu17i_Ip)
//============================================================================



static void Test_aBFu33_BFu17i_L()
{
  {
    init_simple_test("aBFu33_BFu17i_L");
    static STRUCT_IF_C aBFu33_BFu17i_L lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu17i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_L");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_L");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_L");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_L, aBFu33_BFu17i_L)
//============================================================================



static void Test_aBFu33_BFu17i_S()
{
  {
    init_simple_test("aBFu33_BFu17i_S");
    static STRUCT_IF_C aBFu33_BFu17i_S lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_S");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_S");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_S");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_S, aBFu33_BFu17i_S)
//============================================================================



static void Test_aBFu33_BFu17i_Uc()
{
  {
    init_simple_test("aBFu33_BFu17i_Uc");
    static STRUCT_IF_C aBFu33_BFu17i_Uc lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_Uc");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_Uc, aBFu33_BFu17i_Uc)
//============================================================================



static void Test_aBFu33_BFu17i_Ui()
{
  {
    init_simple_test("aBFu33_BFu17i_Ui");
    static STRUCT_IF_C aBFu33_BFu17i_Ui lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_Ui");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_Ui, aBFu33_BFu17i_Ui)
//============================================================================



static void Test_aBFu33_BFu17i_Ul()
{
  {
    init_simple_test("aBFu33_BFu17i_Ul");
    static STRUCT_IF_C aBFu33_BFu17i_Ul lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu17i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_Ul");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_Ul, aBFu33_BFu17i_Ul)
//============================================================================



static void Test_aBFu33_BFu17i_Us()
{
  {
    init_simple_test("aBFu33_BFu17i_Us");
    static STRUCT_IF_C aBFu33_BFu17i_Us lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_Us");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_Us");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_Us");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_Us, aBFu33_BFu17i_Us)
//============================================================================



static void Test_aBFu33_BFu17i_Vp()
{
  {
    init_simple_test("aBFu33_BFu17i_Vp");
    static STRUCT_IF_C aBFu33_BFu17i_Vp lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_BFu17i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17i_Vp");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17i_Vp, aBFu33_BFu17i_Vp)
//============================================================================



static void Test_aBFu33_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll, aBFu33_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu15i");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu15i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu15i");
    set_bf_and_test(lv, v3, 6, 2, 15, 1, "aBFu33_BFu17ll_BFu15i");
    set_bf_and_test(lv, v3, 6, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu17ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu15i, aBFu33_BFu17ll_BFu15i)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu15ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v3, 6, 2, 15, 1, "aBFu33_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v3, 6, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu17ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu15ll, aBFu33_BFu17ll_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu15s");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu15s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu15s");
    set_bf_and_test(lv, v3, 6, 2, 15, 1, "aBFu33_BFu17ll_BFu15s");
    set_bf_and_test(lv, v3, 6, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu17ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu15s, aBFu33_BFu17ll_BFu15s)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu16i");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu16i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu16i");
    set_bf_and_test(lv, v3, 6, 2, 16, 1, "aBFu33_BFu17ll_BFu16i");
    set_bf_and_test(lv, v3, 6, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu17ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu16i, aBFu33_BFu17ll_BFu16i)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu16ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v3, 6, 2, 16, 1, "aBFu33_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v3, 6, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu17ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu16ll, aBFu33_BFu17ll_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu16s");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu16s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu16s");
    set_bf_and_test(lv, v3, 6, 2, 16, 1, "aBFu33_BFu17ll_BFu16s");
    set_bf_and_test(lv, v3, 6, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu17ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu16s, aBFu33_BFu17ll_BFu16s)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu17i");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu17i");
    set_bf_and_test(lv, v3, 6, 2, 17, 1, "aBFu33_BFu17ll_BFu17i");
    set_bf_and_test(lv, v3, 6, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu17i, aBFu33_BFu17ll_BFu17i)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v3, 6, 2, 17, 1, "aBFu33_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v3, 6, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu17ll, aBFu33_BFu17ll_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu1c");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu17ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu1c");
    set_bf_and_test(lv, v3, 6, 2, 1, 1, "aBFu33_BFu17ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu1c, aBFu33_BFu17ll_BFu1c)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu1i");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu17ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu1i");
    set_bf_and_test(lv, v3, 6, 2, 1, 1, "aBFu33_BFu17ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu1i, aBFu33_BFu17ll_BFu1i)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu17ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v3, 6, 2, 1, 1, "aBFu33_BFu17ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu1ll, aBFu33_BFu17ll_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu1s");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu17ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu1s");
    set_bf_and_test(lv, v3, 6, 2, 1, 1, "aBFu33_BFu17ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu1s, aBFu33_BFu17ll_BFu1s)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu31i");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu31i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu31i");
    set_bf_and_test(lv, v3, 6, 2, 31, 1, "aBFu33_BFu17ll_BFu31i");
    set_bf_and_test(lv, v3, 6, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu17ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu31i, aBFu33_BFu17ll_BFu31i)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu31ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v3, 6, 2, 31, 1, "aBFu33_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v3, 6, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu17ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu31ll, aBFu33_BFu17ll_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu32i");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu32i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu32i");
    set_bf_and_test(lv, v3, 6, 2, 32, 1, "aBFu33_BFu17ll_BFu32i");
    set_bf_and_test(lv, v3, 6, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu17ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu32i, aBFu33_BFu17ll_BFu32i)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu32ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v3, 6, 2, 32, 1, "aBFu33_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v3, 6, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu17ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu32ll, aBFu33_BFu17ll_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu33()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu33");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu33");
    set_bf_and_test(lv, v3, 6, 2, 33, 1, "aBFu33_BFu17ll_BFu33");
    set_bf_and_test(lv, v3, 6, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu33, aBFu33_BFu17ll_BFu33)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu7c");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu7c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu7c");
    set_bf_and_test(lv, v3, 6, 2, 7, 1, "aBFu33_BFu17ll_BFu7c");
    set_bf_and_test(lv, v3, 6, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu17ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu7c, aBFu33_BFu17ll_BFu7c)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu7i");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu7i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu7i");
    set_bf_and_test(lv, v3, 6, 2, 7, 1, "aBFu33_BFu17ll_BFu7i");
    set_bf_and_test(lv, v3, 6, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu17ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu7i, aBFu33_BFu17ll_BFu7i)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu7ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v3, 6, 2, 7, 1, "aBFu33_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v3, 6, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu17ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu7ll, aBFu33_BFu17ll_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu7s");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu7s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu7s");
    set_bf_and_test(lv, v3, 6, 2, 7, 1, "aBFu33_BFu17ll_BFu7s");
    set_bf_and_test(lv, v3, 6, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu17ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu7s, aBFu33_BFu17ll_BFu7s)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu8c");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu8c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu8c");
    set_bf_and_test(lv, v3, 6, 2, 8, 1, "aBFu33_BFu17ll_BFu8c");
    set_bf_and_test(lv, v3, 6, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu17ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu8c, aBFu33_BFu17ll_BFu8c)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu8i");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu8i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu8i");
    set_bf_and_test(lv, v3, 6, 2, 8, 1, "aBFu33_BFu17ll_BFu8i");
    set_bf_and_test(lv, v3, 6, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu17ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu8i, aBFu33_BFu17ll_BFu8i)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu8ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v3, 6, 2, 8, 1, "aBFu33_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v3, 6, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu17ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu8ll, aBFu33_BFu17ll_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu8s");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu8s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu8s");
    set_bf_and_test(lv, v3, 6, 2, 8, 1, "aBFu33_BFu17ll_BFu8s");
    set_bf_and_test(lv, v3, 6, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu17ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu8s, aBFu33_BFu17ll_BFu8s)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu9i");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu9i");
    set_bf_and_test(lv, v3, 6, 2, 9, 1, "aBFu33_BFu17ll_BFu9i");
    set_bf_and_test(lv, v3, 6, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu17ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu9i, aBFu33_BFu17ll_BFu9i)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v3, 6, 2, 9, 1, "aBFu33_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v3, 6, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu17ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu9ll, aBFu33_BFu17ll_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu17ll_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu17ll_BFu9s");
    static STRUCT_IF_C aBFu33_BFu17ll_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_BFu9s");
    set_bf_and_test(lv, v3, 6, 2, 9, 1, "aBFu33_BFu17ll_BFu9s");
    set_bf_and_test(lv, v3, 6, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu17ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_BFu9s, aBFu33_BFu17ll_BFu9s)
//============================================================================



static void Test_aBFu33_BFu17ll_C()
{
  {
    init_simple_test("aBFu33_BFu17ll_C");
    static STRUCT_IF_C aBFu33_BFu17ll_C lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_C");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_C");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_C");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_C, aBFu33_BFu17ll_C)
//============================================================================



static void Test_aBFu33_BFu17ll_D()
{
  {
    init_simple_test("aBFu33_BFu17ll_D");
    static STRUCT_IF_C aBFu33_BFu17ll_D lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu17ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_D");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_D");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_D");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_D, aBFu33_BFu17ll_D)
//============================================================================



static void Test_aBFu33_BFu17ll_F()
{
  {
    init_simple_test("aBFu33_BFu17ll_F");
    static STRUCT_IF_C aBFu33_BFu17ll_F lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_F");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_F");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_F");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_F, aBFu33_BFu17ll_F)
//============================================================================



static void Test_aBFu33_BFu17ll_I()
{
  {
    init_simple_test("aBFu33_BFu17ll_I");
    static STRUCT_IF_C aBFu33_BFu17ll_I lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_I");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_I");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_I");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_I, aBFu33_BFu17ll_I)
//============================================================================



static void Test_aBFu33_BFu17ll_Ip()
{
  {
    init_simple_test("aBFu33_BFu17ll_Ip");
    static STRUCT_IF_C aBFu33_BFu17ll_Ip lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_BFu17ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_Ip");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_Ip, aBFu33_BFu17ll_Ip)
//============================================================================



static void Test_aBFu33_BFu17ll_L()
{
  {
    init_simple_test("aBFu33_BFu17ll_L");
    static STRUCT_IF_C aBFu33_BFu17ll_L lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu17ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_L");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_L");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_L");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_L, aBFu33_BFu17ll_L)
//============================================================================



static void Test_aBFu33_BFu17ll_S()
{
  {
    init_simple_test("aBFu33_BFu17ll_S");
    static STRUCT_IF_C aBFu33_BFu17ll_S lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_S");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_S");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_S");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_S, aBFu33_BFu17ll_S)
//============================================================================



static void Test_aBFu33_BFu17ll_Uc()
{
  {
    init_simple_test("aBFu33_BFu17ll_Uc");
    static STRUCT_IF_C aBFu33_BFu17ll_Uc lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu17ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_Uc");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_Uc, aBFu33_BFu17ll_Uc)
//============================================================================



static void Test_aBFu33_BFu17ll_Ui()
{
  {
    init_simple_test("aBFu33_BFu17ll_Ui");
    static STRUCT_IF_C aBFu33_BFu17ll_Ui lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu17ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_Ui");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_Ui, aBFu33_BFu17ll_Ui)
//============================================================================



static void Test_aBFu33_BFu17ll_Ul()
{
  {
    init_simple_test("aBFu33_BFu17ll_Ul");
    static STRUCT_IF_C aBFu33_BFu17ll_Ul lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_BFu17ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_Ul");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_Ul, aBFu33_BFu17ll_Ul)
//============================================================================



static void Test_aBFu33_BFu17ll_Us()
{
  {
    init_simple_test("aBFu33_BFu17ll_Us");
    static STRUCT_IF_C aBFu33_BFu17ll_Us lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu17ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_Us");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_Us, aBFu33_BFu17ll_Us)
//============================================================================



static void Test_aBFu33_BFu17ll_Vp()
{
  {
    init_simple_test("aBFu33_BFu17ll_Vp");
    static STRUCT_IF_C aBFu33_BFu17ll_Vp lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_BFu17ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu17ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu17ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu17ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu33_BFu17ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu17ll_Vp");
    check_field_offset(lv, v3, 7, "aBFu33_BFu17ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu17ll_Vp, aBFu33_BFu17ll_Vp)
//============================================================================



static void Test_aBFu33_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu1c");
    static STRUCT_IF_C aBFu33_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c, aBFu33_BFu1c)
//============================================================================



static void Test_aBFu33_BFu1c_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu15i");
    static STRUCT_IF_C aBFu33_BFu1c_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu15i");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1c_BFu15i");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu15i, aBFu33_BFu1c_BFu15i)
//============================================================================



static void Test_aBFu33_BFu1c_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu1c_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu15ll");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1c_BFu15ll");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu15ll, aBFu33_BFu1c_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu1c_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu15s");
    static STRUCT_IF_C aBFu33_BFu1c_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu15s");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1c_BFu15s");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu15s, aBFu33_BFu1c_BFu15s)
//============================================================================



static void Test_aBFu33_BFu1c_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu16i");
    static STRUCT_IF_C aBFu33_BFu1c_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu16i");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1c_BFu16i");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu16i, aBFu33_BFu1c_BFu16i)
//============================================================================



static void Test_aBFu33_BFu1c_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu1c_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu16ll");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1c_BFu16ll");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu16ll, aBFu33_BFu1c_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu1c_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu16s");
    static STRUCT_IF_C aBFu33_BFu1c_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu16s");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1c_BFu16s");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu16s, aBFu33_BFu1c_BFu16s)
//============================================================================



static void Test_aBFu33_BFu1c_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu17i");
    static STRUCT_IF_C aBFu33_BFu1c_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu17i");
    set_bf_and_test(lv, v3, 4, 2, 17, 1, "aBFu33_BFu1c_BFu17i");
    set_bf_and_test(lv, v3, 4, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu1c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu17i, aBFu33_BFu1c_BFu17i)
//============================================================================



static void Test_aBFu33_BFu1c_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu1c_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu17ll");
    set_bf_and_test(lv, v3, 4, 2, 17, 1, "aBFu33_BFu1c_BFu17ll");
    set_bf_and_test(lv, v3, 4, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu1c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu17ll, aBFu33_BFu1c_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu1c_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu1c");
    static STRUCT_IF_C aBFu33_BFu1c_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu1c");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu1c, aBFu33_BFu1c_BFu1c)
//============================================================================



static void Test_aBFu33_BFu1c_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu1i");
    static STRUCT_IF_C aBFu33_BFu1c_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu1i");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu1i, aBFu33_BFu1c_BFu1i)
//============================================================================



static void Test_aBFu33_BFu1c_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu1c_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu1ll");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu1ll, aBFu33_BFu1c_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu1c_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu1s");
    static STRUCT_IF_C aBFu33_BFu1c_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu1s");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu1s, aBFu33_BFu1c_BFu1s)
//============================================================================



static void Test_aBFu33_BFu1c_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu31i");
    static STRUCT_IF_C aBFu33_BFu1c_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu31i");
    set_bf_and_test(lv, v3, 4, 2, 31, 1, "aBFu33_BFu1c_BFu31i");
    set_bf_and_test(lv, v3, 4, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu1c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu31i, aBFu33_BFu1c_BFu31i)
//============================================================================



static void Test_aBFu33_BFu1c_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu1c_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu31ll");
    set_bf_and_test(lv, v3, 4, 2, 31, 1, "aBFu33_BFu1c_BFu31ll");
    set_bf_and_test(lv, v3, 4, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu1c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu31ll, aBFu33_BFu1c_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu1c_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu32i");
    static STRUCT_IF_C aBFu33_BFu1c_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu32i");
    set_bf_and_test(lv, v3, 4, 2, 32, 1, "aBFu33_BFu1c_BFu32i");
    set_bf_and_test(lv, v3, 4, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu1c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu32i, aBFu33_BFu1c_BFu32i)
//============================================================================



static void Test_aBFu33_BFu1c_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu1c_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu32ll");
    set_bf_and_test(lv, v3, 4, 2, 32, 1, "aBFu33_BFu1c_BFu32ll");
    set_bf_and_test(lv, v3, 4, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu1c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu32ll, aBFu33_BFu1c_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu1c_BFu33()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu33");
    static STRUCT_IF_C aBFu33_BFu1c_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu33");
    set_bf_and_test(lv, v3, 4, 2, 33, 1, "aBFu33_BFu1c_BFu33");
    set_bf_and_test(lv, v3, 4, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu33, aBFu33_BFu1c_BFu33)
//============================================================================



static void Test_aBFu33_BFu1c_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu7c");
    static STRUCT_IF_C aBFu33_BFu1c_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu7c");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1c_BFu7c");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu7c, aBFu33_BFu1c_BFu7c)
//============================================================================



static void Test_aBFu33_BFu1c_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu7i");
    static STRUCT_IF_C aBFu33_BFu1c_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu7i");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1c_BFu7i");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu7i, aBFu33_BFu1c_BFu7i)
//============================================================================



static void Test_aBFu33_BFu1c_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu1c_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu7ll");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1c_BFu7ll");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu7ll, aBFu33_BFu1c_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu1c_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu7s");
    static STRUCT_IF_C aBFu33_BFu1c_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu7s");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1c_BFu7s");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu7s, aBFu33_BFu1c_BFu7s)
//============================================================================



static void Test_aBFu33_BFu1c_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu8c");
    static STRUCT_IF_C aBFu33_BFu1c_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu8c");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1c_BFu8c");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu8c, aBFu33_BFu1c_BFu8c)
//============================================================================



static void Test_aBFu33_BFu1c_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu8i");
    static STRUCT_IF_C aBFu33_BFu1c_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu8i");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1c_BFu8i");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu8i, aBFu33_BFu1c_BFu8i)
//============================================================================



static void Test_aBFu33_BFu1c_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu1c_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu8ll");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1c_BFu8ll");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu8ll, aBFu33_BFu1c_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu1c_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu8s");
    static STRUCT_IF_C aBFu33_BFu1c_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu8s");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1c_BFu8s");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu8s, aBFu33_BFu1c_BFu8s)
//============================================================================



static void Test_aBFu33_BFu1c_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu9i");
    static STRUCT_IF_C aBFu33_BFu1c_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu9i");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1c_BFu9i");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu9i, aBFu33_BFu1c_BFu9i)
//============================================================================



static void Test_aBFu33_BFu1c_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu1c_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu9ll");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1c_BFu9ll");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu9ll, aBFu33_BFu1c_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu1c_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu1c_BFu9s");
    static STRUCT_IF_C aBFu33_BFu1c_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_BFu9s");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1c_BFu9s");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_BFu9s, aBFu33_BFu1c_BFu9s)
//============================================================================



static void Test_aBFu33_BFu1c_C()
{
  {
    init_simple_test("aBFu33_BFu1c_C");
    static STRUCT_IF_C aBFu33_BFu1c_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_C");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_C");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_C, aBFu33_BFu1c_C)
//============================================================================



static void Test_aBFu33_BFu1c_D()
{
  {
    init_simple_test("aBFu33_BFu1c_D");
    static STRUCT_IF_C aBFu33_BFu1c_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_D");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_D");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_D, aBFu33_BFu1c_D)
//============================================================================



static void Test_aBFu33_BFu1c_F()
{
  {
    init_simple_test("aBFu33_BFu1c_F");
    static STRUCT_IF_C aBFu33_BFu1c_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_F");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_F");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_F, aBFu33_BFu1c_F)
//============================================================================



static void Test_aBFu33_BFu1c_I()
{
  {
    init_simple_test("aBFu33_BFu1c_I");
    static STRUCT_IF_C aBFu33_BFu1c_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_I");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_I");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_I, aBFu33_BFu1c_I)
//============================================================================



static void Test_aBFu33_BFu1c_Ip()
{
  {
    init_simple_test("aBFu33_BFu1c_Ip");
    static STRUCT_IF_C aBFu33_BFu1c_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu1c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_Ip");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_Ip");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_Ip, aBFu33_BFu1c_Ip)
//============================================================================



static void Test_aBFu33_BFu1c_L()
{
  {
    init_simple_test("aBFu33_BFu1c_L");
    static STRUCT_IF_C aBFu33_BFu1c_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_L");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_L");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_L, aBFu33_BFu1c_L)
//============================================================================



static void Test_aBFu33_BFu1c_S()
{
  {
    init_simple_test("aBFu33_BFu1c_S");
    static STRUCT_IF_C aBFu33_BFu1c_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_S");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_S");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_S, aBFu33_BFu1c_S)
//============================================================================



static void Test_aBFu33_BFu1c_Uc()
{
  {
    init_simple_test("aBFu33_BFu1c_Uc");
    static STRUCT_IF_C aBFu33_BFu1c_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_Uc");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_Uc");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_Uc, aBFu33_BFu1c_Uc)
//============================================================================



static void Test_aBFu33_BFu1c_Ui()
{
  {
    init_simple_test("aBFu33_BFu1c_Ui");
    static STRUCT_IF_C aBFu33_BFu1c_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_Ui");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_Ui");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_Ui, aBFu33_BFu1c_Ui)
//============================================================================



static void Test_aBFu33_BFu1c_Ul()
{
  {
    init_simple_test("aBFu33_BFu1c_Ul");
    static STRUCT_IF_C aBFu33_BFu1c_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_Ul");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_Ul");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_Ul, aBFu33_BFu1c_Ul)
//============================================================================



static void Test_aBFu33_BFu1c_Us()
{
  {
    init_simple_test("aBFu33_BFu1c_Us");
    static STRUCT_IF_C aBFu33_BFu1c_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_Us");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_Us");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_Us, aBFu33_BFu1c_Us)
//============================================================================



static void Test_aBFu33_BFu1c_Vp()
{
  {
    init_simple_test("aBFu33_BFu1c_Vp");
    static STRUCT_IF_C aBFu33_BFu1c_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu1c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1c_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1c_Vp");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1c_Vp");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1c_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1c_Vp, aBFu33_BFu1c_Vp)
//============================================================================



static void Test_aBFu33_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu1i");
    static STRUCT_IF_C aBFu33_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i, aBFu33_BFu1i)
//============================================================================



static void Test_aBFu33_BFu1i_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu15i");
    static STRUCT_IF_C aBFu33_BFu1i_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu15i");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1i_BFu15i");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu15i, aBFu33_BFu1i_BFu15i)
//============================================================================



static void Test_aBFu33_BFu1i_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu1i_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu15ll");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1i_BFu15ll");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu15ll, aBFu33_BFu1i_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu1i_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu15s");
    static STRUCT_IF_C aBFu33_BFu1i_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu15s");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1i_BFu15s");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu15s, aBFu33_BFu1i_BFu15s)
//============================================================================



static void Test_aBFu33_BFu1i_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu16i");
    static STRUCT_IF_C aBFu33_BFu1i_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu16i");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1i_BFu16i");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu16i, aBFu33_BFu1i_BFu16i)
//============================================================================



static void Test_aBFu33_BFu1i_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu1i_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu16ll");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1i_BFu16ll");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu16ll, aBFu33_BFu1i_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu1i_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu16s");
    static STRUCT_IF_C aBFu33_BFu1i_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu16s");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1i_BFu16s");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu16s, aBFu33_BFu1i_BFu16s)
//============================================================================



static void Test_aBFu33_BFu1i_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu17i");
    static STRUCT_IF_C aBFu33_BFu1i_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu17i");
    set_bf_and_test(lv, v3, 4, 2, 17, 1, "aBFu33_BFu1i_BFu17i");
    set_bf_and_test(lv, v3, 4, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu1i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu17i, aBFu33_BFu1i_BFu17i)
//============================================================================



static void Test_aBFu33_BFu1i_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu1i_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu17ll");
    set_bf_and_test(lv, v3, 4, 2, 17, 1, "aBFu33_BFu1i_BFu17ll");
    set_bf_and_test(lv, v3, 4, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu1i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu17ll, aBFu33_BFu1i_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu1i_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu1c");
    static STRUCT_IF_C aBFu33_BFu1i_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu1c");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu1c, aBFu33_BFu1i_BFu1c)
//============================================================================



static void Test_aBFu33_BFu1i_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu1i");
    static STRUCT_IF_C aBFu33_BFu1i_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu1i");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu1i, aBFu33_BFu1i_BFu1i)
//============================================================================



static void Test_aBFu33_BFu1i_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu1i_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu1ll");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu1ll, aBFu33_BFu1i_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu1i_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu1s");
    static STRUCT_IF_C aBFu33_BFu1i_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu1s");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu1s, aBFu33_BFu1i_BFu1s)
//============================================================================



static void Test_aBFu33_BFu1i_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu31i");
    static STRUCT_IF_C aBFu33_BFu1i_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu31i");
    set_bf_and_test(lv, v3, 4, 2, 31, 1, "aBFu33_BFu1i_BFu31i");
    set_bf_and_test(lv, v3, 4, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu1i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu31i, aBFu33_BFu1i_BFu31i)
//============================================================================



static void Test_aBFu33_BFu1i_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu1i_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu31ll");
    set_bf_and_test(lv, v3, 4, 2, 31, 1, "aBFu33_BFu1i_BFu31ll");
    set_bf_and_test(lv, v3, 4, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu1i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu31ll, aBFu33_BFu1i_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu1i_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu32i");
    static STRUCT_IF_C aBFu33_BFu1i_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu32i");
    set_bf_and_test(lv, v3, 4, 2, 32, 1, "aBFu33_BFu1i_BFu32i");
    set_bf_and_test(lv, v3, 4, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu1i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu32i, aBFu33_BFu1i_BFu32i)
//============================================================================



static void Test_aBFu33_BFu1i_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu1i_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu32ll");
    set_bf_and_test(lv, v3, 4, 2, 32, 1, "aBFu33_BFu1i_BFu32ll");
    set_bf_and_test(lv, v3, 4, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu1i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu32ll, aBFu33_BFu1i_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu1i_BFu33()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu33");
    static STRUCT_IF_C aBFu33_BFu1i_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu33");
    set_bf_and_test(lv, v3, 4, 2, 33, 1, "aBFu33_BFu1i_BFu33");
    set_bf_and_test(lv, v3, 4, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu33, aBFu33_BFu1i_BFu33)
//============================================================================



static void Test_aBFu33_BFu1i_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu7c");
    static STRUCT_IF_C aBFu33_BFu1i_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu7c");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1i_BFu7c");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu7c, aBFu33_BFu1i_BFu7c)
//============================================================================



static void Test_aBFu33_BFu1i_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu7i");
    static STRUCT_IF_C aBFu33_BFu1i_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu7i");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1i_BFu7i");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu7i, aBFu33_BFu1i_BFu7i)
//============================================================================



static void Test_aBFu33_BFu1i_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu1i_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu7ll");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1i_BFu7ll");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu7ll, aBFu33_BFu1i_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu1i_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu7s");
    static STRUCT_IF_C aBFu33_BFu1i_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu7s");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1i_BFu7s");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu7s, aBFu33_BFu1i_BFu7s)
//============================================================================



static void Test_aBFu33_BFu1i_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu8c");
    static STRUCT_IF_C aBFu33_BFu1i_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu8c");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1i_BFu8c");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu8c, aBFu33_BFu1i_BFu8c)
//============================================================================



static void Test_aBFu33_BFu1i_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu8i");
    static STRUCT_IF_C aBFu33_BFu1i_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu8i");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1i_BFu8i");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu8i, aBFu33_BFu1i_BFu8i)
//============================================================================



static void Test_aBFu33_BFu1i_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu1i_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu8ll");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1i_BFu8ll");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu8ll, aBFu33_BFu1i_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu1i_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu8s");
    static STRUCT_IF_C aBFu33_BFu1i_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu8s");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1i_BFu8s");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu8s, aBFu33_BFu1i_BFu8s)
//============================================================================



static void Test_aBFu33_BFu1i_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu9i");
    static STRUCT_IF_C aBFu33_BFu1i_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu9i");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1i_BFu9i");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu9i, aBFu33_BFu1i_BFu9i)
//============================================================================



static void Test_aBFu33_BFu1i_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu1i_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu9ll");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1i_BFu9ll");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu9ll, aBFu33_BFu1i_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu1i_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu1i_BFu9s");
    static STRUCT_IF_C aBFu33_BFu1i_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_BFu9s");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1i_BFu9s");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_BFu9s, aBFu33_BFu1i_BFu9s)
//============================================================================



static void Test_aBFu33_BFu1i_C()
{
  {
    init_simple_test("aBFu33_BFu1i_C");
    static STRUCT_IF_C aBFu33_BFu1i_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_C");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_C");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_C, aBFu33_BFu1i_C)
//============================================================================



static void Test_aBFu33_BFu1i_D()
{
  {
    init_simple_test("aBFu33_BFu1i_D");
    static STRUCT_IF_C aBFu33_BFu1i_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_D");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_D");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_D, aBFu33_BFu1i_D)
//============================================================================



static void Test_aBFu33_BFu1i_F()
{
  {
    init_simple_test("aBFu33_BFu1i_F");
    static STRUCT_IF_C aBFu33_BFu1i_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_F");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_F");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_F, aBFu33_BFu1i_F)
//============================================================================



static void Test_aBFu33_BFu1i_I()
{
  {
    init_simple_test("aBFu33_BFu1i_I");
    static STRUCT_IF_C aBFu33_BFu1i_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_I");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_I");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_I, aBFu33_BFu1i_I)
//============================================================================



static void Test_aBFu33_BFu1i_Ip()
{
  {
    init_simple_test("aBFu33_BFu1i_Ip");
    static STRUCT_IF_C aBFu33_BFu1i_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu1i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_Ip");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_Ip, aBFu33_BFu1i_Ip)
//============================================================================



static void Test_aBFu33_BFu1i_L()
{
  {
    init_simple_test("aBFu33_BFu1i_L");
    static STRUCT_IF_C aBFu33_BFu1i_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_L");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_L");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_L, aBFu33_BFu1i_L)
//============================================================================



static void Test_aBFu33_BFu1i_S()
{
  {
    init_simple_test("aBFu33_BFu1i_S");
    static STRUCT_IF_C aBFu33_BFu1i_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_S");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_S");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_S, aBFu33_BFu1i_S)
//============================================================================



static void Test_aBFu33_BFu1i_Uc()
{
  {
    init_simple_test("aBFu33_BFu1i_Uc");
    static STRUCT_IF_C aBFu33_BFu1i_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_Uc");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_Uc, aBFu33_BFu1i_Uc)
//============================================================================



static void Test_aBFu33_BFu1i_Ui()
{
  {
    init_simple_test("aBFu33_BFu1i_Ui");
    static STRUCT_IF_C aBFu33_BFu1i_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_Ui");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_Ui, aBFu33_BFu1i_Ui)
//============================================================================



static void Test_aBFu33_BFu1i_Ul()
{
  {
    init_simple_test("aBFu33_BFu1i_Ul");
    static STRUCT_IF_C aBFu33_BFu1i_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_Ul");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_Ul, aBFu33_BFu1i_Ul)
//============================================================================



static void Test_aBFu33_BFu1i_Us()
{
  {
    init_simple_test("aBFu33_BFu1i_Us");
    static STRUCT_IF_C aBFu33_BFu1i_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_Us");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_Us");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_Us, aBFu33_BFu1i_Us)
//============================================================================



static void Test_aBFu33_BFu1i_Vp()
{
  {
    init_simple_test("aBFu33_BFu1i_Vp");
    static STRUCT_IF_C aBFu33_BFu1i_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu1i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1i_Vp");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1i_Vp, aBFu33_BFu1i_Vp)
//============================================================================



static void Test_aBFu33_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll, aBFu33_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu15i");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu15i");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1ll_BFu15i");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu15i, aBFu33_BFu1ll_BFu15i)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu15ll, aBFu33_BFu1ll_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu15s");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu15s");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1ll_BFu15s");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu15s, aBFu33_BFu1ll_BFu15s)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu16i");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu16i");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1ll_BFu16i");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu16i, aBFu33_BFu1ll_BFu16i)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu16ll, aBFu33_BFu1ll_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu16s");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu16s");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1ll_BFu16s");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu16s, aBFu33_BFu1ll_BFu16s)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu17i");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu17i");
    set_bf_and_test(lv, v3, 4, 2, 17, 1, "aBFu33_BFu1ll_BFu17i");
    set_bf_and_test(lv, v3, 4, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu1ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu17i, aBFu33_BFu1ll_BFu17i)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v3, 4, 2, 17, 1, "aBFu33_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v3, 4, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu1ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu17ll, aBFu33_BFu1ll_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu1c");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu1c");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu1c, aBFu33_BFu1ll_BFu1c)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu1i");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu1i");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu1i, aBFu33_BFu1ll_BFu1i)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu1ll");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu1ll, aBFu33_BFu1ll_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu1s");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu1s");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu1s, aBFu33_BFu1ll_BFu1s)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu31i");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu31i");
    set_bf_and_test(lv, v3, 4, 2, 31, 1, "aBFu33_BFu1ll_BFu31i");
    set_bf_and_test(lv, v3, 4, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu1ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu31i, aBFu33_BFu1ll_BFu31i)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v3, 4, 2, 31, 1, "aBFu33_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v3, 4, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu1ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu31ll, aBFu33_BFu1ll_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu32i");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu32i");
    set_bf_and_test(lv, v3, 4, 2, 32, 1, "aBFu33_BFu1ll_BFu32i");
    set_bf_and_test(lv, v3, 4, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu1ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu32i, aBFu33_BFu1ll_BFu32i)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v3, 4, 2, 32, 1, "aBFu33_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v3, 4, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu1ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu32ll, aBFu33_BFu1ll_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu33()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu33");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu33");
    set_bf_and_test(lv, v3, 4, 2, 33, 1, "aBFu33_BFu1ll_BFu33");
    set_bf_and_test(lv, v3, 4, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu33, aBFu33_BFu1ll_BFu33)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu7c");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu7c");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1ll_BFu7c");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu7c, aBFu33_BFu1ll_BFu7c)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu7i");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu7i");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1ll_BFu7i");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu7i, aBFu33_BFu1ll_BFu7i)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu7ll, aBFu33_BFu1ll_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu7s");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu7s");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1ll_BFu7s");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu7s, aBFu33_BFu1ll_BFu7s)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu8c");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu8c");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1ll_BFu8c");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu8c, aBFu33_BFu1ll_BFu8c)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu8i");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu8i");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1ll_BFu8i");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu8i, aBFu33_BFu1ll_BFu8i)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu8ll, aBFu33_BFu1ll_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu8s");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu8s");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1ll_BFu8s");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu8s, aBFu33_BFu1ll_BFu8s)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu9i");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu9i");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1ll_BFu9i");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu9i, aBFu33_BFu1ll_BFu9i)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu9ll, aBFu33_BFu1ll_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu1ll_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu1ll_BFu9s");
    static STRUCT_IF_C aBFu33_BFu1ll_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_BFu9s");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1ll_BFu9s");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_BFu9s, aBFu33_BFu1ll_BFu9s)
//============================================================================



static void Test_aBFu33_BFu1ll_C()
{
  {
    init_simple_test("aBFu33_BFu1ll_C");
    static STRUCT_IF_C aBFu33_BFu1ll_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_C");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_C");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_C, aBFu33_BFu1ll_C)
//============================================================================



static void Test_aBFu33_BFu1ll_D()
{
  {
    init_simple_test("aBFu33_BFu1ll_D");
    static STRUCT_IF_C aBFu33_BFu1ll_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_D");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_D");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_D, aBFu33_BFu1ll_D)
//============================================================================



static void Test_aBFu33_BFu1ll_F()
{
  {
    init_simple_test("aBFu33_BFu1ll_F");
    static STRUCT_IF_C aBFu33_BFu1ll_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_F");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_F");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_F, aBFu33_BFu1ll_F)
//============================================================================



static void Test_aBFu33_BFu1ll_I()
{
  {
    init_simple_test("aBFu33_BFu1ll_I");
    static STRUCT_IF_C aBFu33_BFu1ll_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_I");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_I");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_I, aBFu33_BFu1ll_I)
//============================================================================



static void Test_aBFu33_BFu1ll_Ip()
{
  {
    init_simple_test("aBFu33_BFu1ll_Ip");
    static STRUCT_IF_C aBFu33_BFu1ll_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu1ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_Ip");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_Ip, aBFu33_BFu1ll_Ip)
//============================================================================



static void Test_aBFu33_BFu1ll_L()
{
  {
    init_simple_test("aBFu33_BFu1ll_L");
    static STRUCT_IF_C aBFu33_BFu1ll_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_L");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_L");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_L, aBFu33_BFu1ll_L)
//============================================================================



static void Test_aBFu33_BFu1ll_S()
{
  {
    init_simple_test("aBFu33_BFu1ll_S");
    static STRUCT_IF_C aBFu33_BFu1ll_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_S");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_S");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_S, aBFu33_BFu1ll_S)
//============================================================================



static void Test_aBFu33_BFu1ll_Uc()
{
  {
    init_simple_test("aBFu33_BFu1ll_Uc");
    static STRUCT_IF_C aBFu33_BFu1ll_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_Uc");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_Uc, aBFu33_BFu1ll_Uc)
//============================================================================



static void Test_aBFu33_BFu1ll_Ui()
{
  {
    init_simple_test("aBFu33_BFu1ll_Ui");
    static STRUCT_IF_C aBFu33_BFu1ll_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_Ui");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_Ui, aBFu33_BFu1ll_Ui)
//============================================================================



static void Test_aBFu33_BFu1ll_Ul()
{
  {
    init_simple_test("aBFu33_BFu1ll_Ul");
    static STRUCT_IF_C aBFu33_BFu1ll_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_Ul");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_Ul, aBFu33_BFu1ll_Ul)
//============================================================================



static void Test_aBFu33_BFu1ll_Us()
{
  {
    init_simple_test("aBFu33_BFu1ll_Us");
    static STRUCT_IF_C aBFu33_BFu1ll_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_Us");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_Us, aBFu33_BFu1ll_Us)
//============================================================================



static void Test_aBFu33_BFu1ll_Vp()
{
  {
    init_simple_test("aBFu33_BFu1ll_Vp");
    static STRUCT_IF_C aBFu33_BFu1ll_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu1ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1ll_Vp");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1ll_Vp, aBFu33_BFu1ll_Vp)
//============================================================================



static void Test_aBFu33_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu1s");
    static STRUCT_IF_C aBFu33_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s, aBFu33_BFu1s)
//============================================================================



static void Test_aBFu33_BFu1s_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu15i");
    static STRUCT_IF_C aBFu33_BFu1s_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu15i");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1s_BFu15i");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu15i, aBFu33_BFu1s_BFu15i)
//============================================================================



static void Test_aBFu33_BFu1s_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu1s_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu15ll");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1s_BFu15ll");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu15ll, aBFu33_BFu1s_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu1s_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu15s");
    static STRUCT_IF_C aBFu33_BFu1s_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu15s");
    set_bf_and_test(lv, v3, 4, 2, 15, 1, "aBFu33_BFu1s_BFu15s");
    set_bf_and_test(lv, v3, 4, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu1s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu15s, aBFu33_BFu1s_BFu15s)
//============================================================================



static void Test_aBFu33_BFu1s_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu16i");
    static STRUCT_IF_C aBFu33_BFu1s_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu16i");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1s_BFu16i");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu16i, aBFu33_BFu1s_BFu16i)
//============================================================================



static void Test_aBFu33_BFu1s_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu1s_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu16ll");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1s_BFu16ll");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu16ll, aBFu33_BFu1s_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu1s_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu16s");
    static STRUCT_IF_C aBFu33_BFu1s_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu16s");
    set_bf_and_test(lv, v3, 4, 2, 16, 1, "aBFu33_BFu1s_BFu16s");
    set_bf_and_test(lv, v3, 4, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu1s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu16s, aBFu33_BFu1s_BFu16s)
//============================================================================



static void Test_aBFu33_BFu1s_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu17i");
    static STRUCT_IF_C aBFu33_BFu1s_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu17i");
    set_bf_and_test(lv, v3, 4, 2, 17, 1, "aBFu33_BFu1s_BFu17i");
    set_bf_and_test(lv, v3, 4, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu1s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu17i, aBFu33_BFu1s_BFu17i)
//============================================================================



static void Test_aBFu33_BFu1s_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu1s_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu17ll");
    set_bf_and_test(lv, v3, 4, 2, 17, 1, "aBFu33_BFu1s_BFu17ll");
    set_bf_and_test(lv, v3, 4, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu1s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu17ll, aBFu33_BFu1s_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu1s_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu1c");
    static STRUCT_IF_C aBFu33_BFu1s_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu1c");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu1c, aBFu33_BFu1s_BFu1c)
//============================================================================



static void Test_aBFu33_BFu1s_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu1i");
    static STRUCT_IF_C aBFu33_BFu1s_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu1i");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu1i, aBFu33_BFu1s_BFu1i)
//============================================================================



static void Test_aBFu33_BFu1s_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu1s_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu1ll");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu1ll, aBFu33_BFu1s_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu1s_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu1s");
    static STRUCT_IF_C aBFu33_BFu1s_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu1s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu1s");
    set_bf_and_test(lv, v3, 4, 2, 1, 1, "aBFu33_BFu1s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu1s, aBFu33_BFu1s_BFu1s)
//============================================================================



static void Test_aBFu33_BFu1s_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu31i");
    static STRUCT_IF_C aBFu33_BFu1s_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu31i");
    set_bf_and_test(lv, v3, 4, 2, 31, 1, "aBFu33_BFu1s_BFu31i");
    set_bf_and_test(lv, v3, 4, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu1s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu31i, aBFu33_BFu1s_BFu31i)
//============================================================================



static void Test_aBFu33_BFu1s_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu1s_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu31ll");
    set_bf_and_test(lv, v3, 4, 2, 31, 1, "aBFu33_BFu1s_BFu31ll");
    set_bf_and_test(lv, v3, 4, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu1s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu31ll, aBFu33_BFu1s_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu1s_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu32i");
    static STRUCT_IF_C aBFu33_BFu1s_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu32i");
    set_bf_and_test(lv, v3, 4, 2, 32, 1, "aBFu33_BFu1s_BFu32i");
    set_bf_and_test(lv, v3, 4, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu1s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu32i, aBFu33_BFu1s_BFu32i)
//============================================================================



static void Test_aBFu33_BFu1s_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu1s_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu32ll");
    set_bf_and_test(lv, v3, 4, 2, 32, 1, "aBFu33_BFu1s_BFu32ll");
    set_bf_and_test(lv, v3, 4, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu1s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu32ll, aBFu33_BFu1s_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu1s_BFu33()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu33");
    static STRUCT_IF_C aBFu33_BFu1s_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu33");
    set_bf_and_test(lv, v3, 4, 2, 33, 1, "aBFu33_BFu1s_BFu33");
    set_bf_and_test(lv, v3, 4, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu33, aBFu33_BFu1s_BFu33)
//============================================================================



static void Test_aBFu33_BFu1s_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu7c");
    static STRUCT_IF_C aBFu33_BFu1s_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu7c");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1s_BFu7c");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu7c, aBFu33_BFu1s_BFu7c)
//============================================================================



static void Test_aBFu33_BFu1s_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu7i");
    static STRUCT_IF_C aBFu33_BFu1s_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu7i");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1s_BFu7i");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu7i, aBFu33_BFu1s_BFu7i)
//============================================================================



static void Test_aBFu33_BFu1s_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu1s_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu7ll");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1s_BFu7ll");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu7ll, aBFu33_BFu1s_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu1s_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu7s");
    static STRUCT_IF_C aBFu33_BFu1s_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu7s");
    set_bf_and_test(lv, v3, 4, 2, 7, 1, "aBFu33_BFu1s_BFu7s");
    set_bf_and_test(lv, v3, 4, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu1s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu7s, aBFu33_BFu1s_BFu7s)
//============================================================================



static void Test_aBFu33_BFu1s_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu8c");
    static STRUCT_IF_C aBFu33_BFu1s_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu8c");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1s_BFu8c");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu8c, aBFu33_BFu1s_BFu8c)
//============================================================================



static void Test_aBFu33_BFu1s_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu8i");
    static STRUCT_IF_C aBFu33_BFu1s_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu8i");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1s_BFu8i");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu8i, aBFu33_BFu1s_BFu8i)
//============================================================================



static void Test_aBFu33_BFu1s_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu1s_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu8ll");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1s_BFu8ll");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu8ll, aBFu33_BFu1s_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu1s_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu8s");
    static STRUCT_IF_C aBFu33_BFu1s_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu8s");
    set_bf_and_test(lv, v3, 4, 2, 8, 1, "aBFu33_BFu1s_BFu8s");
    set_bf_and_test(lv, v3, 4, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu1s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu8s, aBFu33_BFu1s_BFu8s)
//============================================================================



static void Test_aBFu33_BFu1s_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu9i");
    static STRUCT_IF_C aBFu33_BFu1s_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu9i");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1s_BFu9i");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu9i, aBFu33_BFu1s_BFu9i)
//============================================================================



static void Test_aBFu33_BFu1s_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu1s_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu9ll");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1s_BFu9ll");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu9ll, aBFu33_BFu1s_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu1s_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu1s_BFu9s");
    static STRUCT_IF_C aBFu33_BFu1s_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_BFu9s");
    set_bf_and_test(lv, v3, 4, 2, 9, 1, "aBFu33_BFu1s_BFu9s");
    set_bf_and_test(lv, v3, 4, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu1s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_BFu9s, aBFu33_BFu1s_BFu9s)
//============================================================================



static void Test_aBFu33_BFu1s_C()
{
  {
    init_simple_test("aBFu33_BFu1s_C");
    static STRUCT_IF_C aBFu33_BFu1s_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_C");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_C");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_C, aBFu33_BFu1s_C)
//============================================================================



static void Test_aBFu33_BFu1s_D()
{
  {
    init_simple_test("aBFu33_BFu1s_D");
    static STRUCT_IF_C aBFu33_BFu1s_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_D");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_D");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_D, aBFu33_BFu1s_D)
//============================================================================



static void Test_aBFu33_BFu1s_F()
{
  {
    init_simple_test("aBFu33_BFu1s_F");
    static STRUCT_IF_C aBFu33_BFu1s_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_F");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_F");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_F, aBFu33_BFu1s_F)
//============================================================================



static void Test_aBFu33_BFu1s_I()
{
  {
    init_simple_test("aBFu33_BFu1s_I");
    static STRUCT_IF_C aBFu33_BFu1s_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_I");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_I");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_I, aBFu33_BFu1s_I)
//============================================================================



static void Test_aBFu33_BFu1s_Ip()
{
  {
    init_simple_test("aBFu33_BFu1s_Ip");
    static STRUCT_IF_C aBFu33_BFu1s_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu1s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_Ip");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_Ip");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_Ip, aBFu33_BFu1s_Ip)
//============================================================================



static void Test_aBFu33_BFu1s_L()
{
  {
    init_simple_test("aBFu33_BFu1s_L");
    static STRUCT_IF_C aBFu33_BFu1s_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_L");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_L");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_L, aBFu33_BFu1s_L)
//============================================================================



static void Test_aBFu33_BFu1s_S()
{
  {
    init_simple_test("aBFu33_BFu1s_S");
    static STRUCT_IF_C aBFu33_BFu1s_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_S");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_S");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_S, aBFu33_BFu1s_S)
//============================================================================



static void Test_aBFu33_BFu1s_Uc()
{
  {
    init_simple_test("aBFu33_BFu1s_Uc");
    static STRUCT_IF_C aBFu33_BFu1s_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu1s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_Uc");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_Uc");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_Uc, aBFu33_BFu1s_Uc)
//============================================================================



static void Test_aBFu33_BFu1s_Ui()
{
  {
    init_simple_test("aBFu33_BFu1s_Ui");
    static STRUCT_IF_C aBFu33_BFu1s_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu1s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_Ui");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_Ui");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_Ui, aBFu33_BFu1s_Ui)
//============================================================================



static void Test_aBFu33_BFu1s_Ul()
{
  {
    init_simple_test("aBFu33_BFu1s_Ul");
    static STRUCT_IF_C aBFu33_BFu1s_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu1s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_Ul");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_Ul");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_Ul, aBFu33_BFu1s_Ul)
//============================================================================



static void Test_aBFu33_BFu1s_Us()
{
  {
    init_simple_test("aBFu33_BFu1s_Us");
    static STRUCT_IF_C aBFu33_BFu1s_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu1s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_Us");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_Us");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_Us, aBFu33_BFu1s_Us)
//============================================================================



static void Test_aBFu33_BFu1s_Vp()
{
  {
    init_simple_test("aBFu33_BFu1s_Vp");
    static STRUCT_IF_C aBFu33_BFu1s_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu1s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu1s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu1s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu1s_Vp");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu33_BFu1s_Vp");
    check_field_offset(lv, v3, 5, "aBFu33_BFu1s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu1s_Vp, aBFu33_BFu1s_Vp)
//============================================================================



static void Test_aBFu33_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu31i");
    static STRUCT_IF_C aBFu33_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i, aBFu33_BFu31i)
//============================================================================



static void Test_aBFu33_BFu31i_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu15i");
    static STRUCT_IF_C aBFu33_BFu31i_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu15i");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu33_BFu31i_BFu15i");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu31i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu15i, aBFu33_BFu31i_BFu15i)
//============================================================================



static void Test_aBFu33_BFu31i_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu31i_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu15ll");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu33_BFu31i_BFu15ll");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu31i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu15ll, aBFu33_BFu31i_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu31i_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu15s");
    static STRUCT_IF_C aBFu33_BFu31i_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu15s");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu33_BFu31i_BFu15s");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu31i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu15s, aBFu33_BFu31i_BFu15s)
//============================================================================



static void Test_aBFu33_BFu31i_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu16i");
    static STRUCT_IF_C aBFu33_BFu31i_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu16i");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu33_BFu31i_BFu16i");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu31i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu16i, aBFu33_BFu31i_BFu16i)
//============================================================================



static void Test_aBFu33_BFu31i_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu31i_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu16ll");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu33_BFu31i_BFu16ll");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu31i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu16ll, aBFu33_BFu31i_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu31i_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu16s");
    static STRUCT_IF_C aBFu33_BFu31i_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu16s");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu33_BFu31i_BFu16s");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu31i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu16s, aBFu33_BFu31i_BFu16s)
//============================================================================



static void Test_aBFu33_BFu31i_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu17i");
    static STRUCT_IF_C aBFu33_BFu31i_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu31i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu17i");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu33_BFu31i_BFu17i");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu31i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu17i, aBFu33_BFu31i_BFu17i)
//============================================================================



static void Test_aBFu33_BFu31i_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu31i_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu31i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu17ll");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu33_BFu31i_BFu17ll");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu31i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu17ll, aBFu33_BFu31i_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu31i_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu1c");
    static STRUCT_IF_C aBFu33_BFu31i_BFu1c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu1c");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu33_BFu31i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu1c, aBFu33_BFu31i_BFu1c)
//============================================================================



static void Test_aBFu33_BFu31i_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu1i");
    static STRUCT_IF_C aBFu33_BFu31i_BFu1i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu1i");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu33_BFu31i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu1i, aBFu33_BFu31i_BFu1i)
//============================================================================



static void Test_aBFu33_BFu31i_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu31i_BFu1ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu1ll");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu33_BFu31i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu1ll, aBFu33_BFu31i_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu31i_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu1s");
    static STRUCT_IF_C aBFu33_BFu31i_BFu1s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu1s");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu33_BFu31i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu1s, aBFu33_BFu31i_BFu1s)
//============================================================================



static void Test_aBFu33_BFu31i_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu31i");
    static STRUCT_IF_C aBFu33_BFu31i_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu31i");
    set_bf_and_test(lv, v3, 8, 0, 31, 1, "aBFu33_BFu31i_BFu31i");
    set_bf_and_test(lv, v3, 8, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu31i, aBFu33_BFu31i_BFu31i)
//============================================================================



static void Test_aBFu33_BFu31i_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu31i_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu31ll");
    set_bf_and_test(lv, v3, 8, 0, 31, 1, "aBFu33_BFu31i_BFu31ll");
    set_bf_and_test(lv, v3, 8, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu31ll, aBFu33_BFu31i_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu31i_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu32i");
    static STRUCT_IF_C aBFu33_BFu31i_BFu32i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu33_BFu31i_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu31i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu32i, aBFu33_BFu31i_BFu32i)
//============================================================================



static void Test_aBFu33_BFu31i_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu31i_BFu32ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu33_BFu31i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu31i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu32ll, aBFu33_BFu31i_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu31i_BFu33()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu33");
    static STRUCT_IF_C aBFu33_BFu31i_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu31i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu33");
    set_bf_and_test(lv, v3, 8, 0, 33, 1, "aBFu33_BFu31i_BFu33");
    set_bf_and_test(lv, v3, 8, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu33, aBFu33_BFu31i_BFu33)
//============================================================================



static void Test_aBFu33_BFu31i_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu7c");
    static STRUCT_IF_C aBFu33_BFu31i_BFu7c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu7c");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu33_BFu31i_BFu7c");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu31i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu7c, aBFu33_BFu31i_BFu7c)
//============================================================================



static void Test_aBFu33_BFu31i_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu7i");
    static STRUCT_IF_C aBFu33_BFu31i_BFu7i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu7i");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu33_BFu31i_BFu7i");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu31i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu7i, aBFu33_BFu31i_BFu7i)
//============================================================================



static void Test_aBFu33_BFu31i_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu31i_BFu7ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu7ll");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu33_BFu31i_BFu7ll");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu31i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu7ll, aBFu33_BFu31i_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu31i_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu7s");
    static STRUCT_IF_C aBFu33_BFu31i_BFu7s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu7s");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu33_BFu31i_BFu7s");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu31i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu7s, aBFu33_BFu31i_BFu7s)
//============================================================================



static void Test_aBFu33_BFu31i_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu8c");
    static STRUCT_IF_C aBFu33_BFu31i_BFu8c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu8c");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu33_BFu31i_BFu8c");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu31i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu8c, aBFu33_BFu31i_BFu8c)
//============================================================================



static void Test_aBFu33_BFu31i_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu8i");
    static STRUCT_IF_C aBFu33_BFu31i_BFu8i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu8i");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu33_BFu31i_BFu8i");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu31i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu8i, aBFu33_BFu31i_BFu8i)
//============================================================================



static void Test_aBFu33_BFu31i_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu31i_BFu8ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu8ll");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu33_BFu31i_BFu8ll");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu31i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu8ll, aBFu33_BFu31i_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu31i_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu8s");
    static STRUCT_IF_C aBFu33_BFu31i_BFu8s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu8s");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu33_BFu31i_BFu8s");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu31i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu8s, aBFu33_BFu31i_BFu8s)
//============================================================================



static void Test_aBFu33_BFu31i_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu9i");
    static STRUCT_IF_C aBFu33_BFu31i_BFu9i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu9i");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu33_BFu31i_BFu9i");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu31i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu9i, aBFu33_BFu31i_BFu9i)
//============================================================================



static void Test_aBFu33_BFu31i_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu31i_BFu9ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu9ll");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu33_BFu31i_BFu9ll");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu31i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu9ll, aBFu33_BFu31i_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu31i_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu31i_BFu9s");
    static STRUCT_IF_C aBFu33_BFu31i_BFu9s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_BFu9s");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu33_BFu31i_BFu9s");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu31i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_BFu9s, aBFu33_BFu31i_BFu9s)
//============================================================================



static void Test_aBFu33_BFu31i_C()
{
  {
    init_simple_test("aBFu33_BFu31i_C");
    static STRUCT_IF_C aBFu33_BFu31i_C lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_C");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_C");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_C");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_C, aBFu33_BFu31i_C)
//============================================================================



static void Test_aBFu33_BFu31i_D()
{
  {
    init_simple_test("aBFu33_BFu31i_D");
    static STRUCT_IF_C aBFu33_BFu31i_D lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_BFu31i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_D");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_D");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_D");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_D, aBFu33_BFu31i_D)
//============================================================================



static void Test_aBFu33_BFu31i_F()
{
  {
    init_simple_test("aBFu33_BFu31i_F");
    static STRUCT_IF_C aBFu33_BFu31i_F lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_F");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_F");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_F");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_F, aBFu33_BFu31i_F)
//============================================================================



static void Test_aBFu33_BFu31i_I()
{
  {
    init_simple_test("aBFu33_BFu31i_I");
    static STRUCT_IF_C aBFu33_BFu31i_I lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_I");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_I");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_I");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_I, aBFu33_BFu31i_I)
//============================================================================



static void Test_aBFu33_BFu31i_Ip()
{
  {
    init_simple_test("aBFu33_BFu31i_Ip");
    static STRUCT_IF_C aBFu33_BFu31i_Ip lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu33_BFu31i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_Ip");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_Ip, aBFu33_BFu31i_Ip)
//============================================================================



static void Test_aBFu33_BFu31i_L()
{
  {
    init_simple_test("aBFu33_BFu31i_L");
    static STRUCT_IF_C aBFu33_BFu31i_L lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_BFu31i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_L");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_L");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_L");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_L, aBFu33_BFu31i_L)
//============================================================================



static void Test_aBFu33_BFu31i_S()
{
  {
    init_simple_test("aBFu33_BFu31i_S");
    static STRUCT_IF_C aBFu33_BFu31i_S lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_S");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_S");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_S");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_S, aBFu33_BFu31i_S)
//============================================================================



static void Test_aBFu33_BFu31i_Uc()
{
  {
    init_simple_test("aBFu33_BFu31i_Uc");
    static STRUCT_IF_C aBFu33_BFu31i_Uc lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_Uc");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_Uc, aBFu33_BFu31i_Uc)
//============================================================================



static void Test_aBFu33_BFu31i_Ui()
{
  {
    init_simple_test("aBFu33_BFu31i_Ui");
    static STRUCT_IF_C aBFu33_BFu31i_Ui lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_Ui");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_Ui, aBFu33_BFu31i_Ui)
//============================================================================



static void Test_aBFu33_BFu31i_Ul()
{
  {
    init_simple_test("aBFu33_BFu31i_Ul");
    static STRUCT_IF_C aBFu33_BFu31i_Ul lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_BFu31i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_Ul");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_Ul, aBFu33_BFu31i_Ul)
//============================================================================



static void Test_aBFu33_BFu31i_Us()
{
  {
    init_simple_test("aBFu33_BFu31i_Us");
    static STRUCT_IF_C aBFu33_BFu31i_Us lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_Us");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_Us");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_Us");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_Us, aBFu33_BFu31i_Us)
//============================================================================



static void Test_aBFu33_BFu31i_Vp()
{
  {
    init_simple_test("aBFu33_BFu31i_Vp");
    static STRUCT_IF_C aBFu33_BFu31i_Vp lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu33_BFu31i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31i_Vp");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31i_Vp, aBFu33_BFu31i_Vp)
//============================================================================



static void Test_aBFu33_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll, aBFu33_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu15i");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu15i");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu33_BFu31ll_BFu15i");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu31ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu15i, aBFu33_BFu31ll_BFu15i)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu33_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu31ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu15ll, aBFu33_BFu31ll_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu15s");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu15s");
    set_bf_and_test(lv, v3, 8, 0, 15, 1, "aBFu33_BFu31ll_BFu15s");
    set_bf_and_test(lv, v3, 8, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu31ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu15s, aBFu33_BFu31ll_BFu15s)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu16i");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu16i");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu33_BFu31ll_BFu16i");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu31ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu16i, aBFu33_BFu31ll_BFu16i)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu33_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu31ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu16ll, aBFu33_BFu31ll_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu16s");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu16s");
    set_bf_and_test(lv, v3, 8, 0, 16, 1, "aBFu33_BFu31ll_BFu16s");
    set_bf_and_test(lv, v3, 8, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu31ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu16s, aBFu33_BFu31ll_BFu16s)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu17i");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu31ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu17i");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu33_BFu31ll_BFu17i");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu31ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu17i, aBFu33_BFu31ll_BFu17i)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu31ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v3, 8, 0, 17, 1, "aBFu33_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v3, 8, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu31ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu17ll, aBFu33_BFu31ll_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu1c");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu1c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu1c");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu33_BFu31ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu1c, aBFu33_BFu31ll_BFu1c)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu1i");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu1i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu1i");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu33_BFu31ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu1i, aBFu33_BFu31ll_BFu1i)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu1ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu33_BFu31ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu1ll, aBFu33_BFu31ll_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu1s");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu1s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu1s");
    set_bf_and_test(lv, v3, 8, 0, 1, 1, "aBFu33_BFu31ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu1s, aBFu33_BFu31ll_BFu1s)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu31i");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu31i");
    set_bf_and_test(lv, v3, 8, 0, 31, 1, "aBFu33_BFu31ll_BFu31i");
    set_bf_and_test(lv, v3, 8, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu31i, aBFu33_BFu31ll_BFu31i)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v3, 8, 0, 31, 1, "aBFu33_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v3, 8, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu31ll, aBFu33_BFu31ll_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu32i");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu32i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu33_BFu31ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu31ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu32i, aBFu33_BFu31ll_BFu32i)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu32ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, 1, "aBFu33_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu31ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu32ll, aBFu33_BFu31ll_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu33()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu33");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu31ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu33");
    set_bf_and_test(lv, v3, 8, 0, 33, 1, "aBFu33_BFu31ll_BFu33");
    set_bf_and_test(lv, v3, 8, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu33, aBFu33_BFu31ll_BFu33)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu7c");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu7c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu7c");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu33_BFu31ll_BFu7c");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu31ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu7c, aBFu33_BFu31ll_BFu7c)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu7i");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu7i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu7i");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu33_BFu31ll_BFu7i");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu31ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu7i, aBFu33_BFu31ll_BFu7i)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu7ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu33_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu31ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu7ll, aBFu33_BFu31ll_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu7s");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu7s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu7s");
    set_bf_and_test(lv, v3, 8, 0, 7, 1, "aBFu33_BFu31ll_BFu7s");
    set_bf_and_test(lv, v3, 8, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu31ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu7s, aBFu33_BFu31ll_BFu7s)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu8c");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu8c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu8c");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu33_BFu31ll_BFu8c");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu31ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu8c, aBFu33_BFu31ll_BFu8c)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu8i");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu8i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu8i");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu33_BFu31ll_BFu8i");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu31ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu8i, aBFu33_BFu31ll_BFu8i)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu8ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu33_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu31ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu8ll, aBFu33_BFu31ll_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu8s");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu8s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu8s");
    set_bf_and_test(lv, v3, 8, 0, 8, 1, "aBFu33_BFu31ll_BFu8s");
    set_bf_and_test(lv, v3, 8, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu31ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu8s, aBFu33_BFu31ll_BFu8s)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu9i");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu9i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu9i");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu33_BFu31ll_BFu9i");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu31ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu9i, aBFu33_BFu31ll_BFu9i)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu9ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu33_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu31ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu9ll, aBFu33_BFu31ll_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu31ll_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu31ll_BFu9s");
    static STRUCT_IF_C aBFu33_BFu31ll_BFu9s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_BFu9s");
    set_bf_and_test(lv, v3, 8, 0, 9, 1, "aBFu33_BFu31ll_BFu9s");
    set_bf_and_test(lv, v3, 8, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu31ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_BFu9s, aBFu33_BFu31ll_BFu9s)
//============================================================================



static void Test_aBFu33_BFu31ll_C()
{
  {
    init_simple_test("aBFu33_BFu31ll_C");
    static STRUCT_IF_C aBFu33_BFu31ll_C lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_C");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_C");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_C");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_C, aBFu33_BFu31ll_C)
//============================================================================



static void Test_aBFu33_BFu31ll_D()
{
  {
    init_simple_test("aBFu33_BFu31ll_D");
    static STRUCT_IF_C aBFu33_BFu31ll_D lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_BFu31ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_D");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_D");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_D");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_D, aBFu33_BFu31ll_D)
//============================================================================



static void Test_aBFu33_BFu31ll_F()
{
  {
    init_simple_test("aBFu33_BFu31ll_F");
    static STRUCT_IF_C aBFu33_BFu31ll_F lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_F");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_F");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_F");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_F, aBFu33_BFu31ll_F)
//============================================================================



static void Test_aBFu33_BFu31ll_I()
{
  {
    init_simple_test("aBFu33_BFu31ll_I");
    static STRUCT_IF_C aBFu33_BFu31ll_I lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_I");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_I");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_I");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_I, aBFu33_BFu31ll_I)
//============================================================================



static void Test_aBFu33_BFu31ll_Ip()
{
  {
    init_simple_test("aBFu33_BFu31ll_Ip");
    static STRUCT_IF_C aBFu33_BFu31ll_Ip lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu33_BFu31ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_Ip");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_Ip, aBFu33_BFu31ll_Ip)
//============================================================================



static void Test_aBFu33_BFu31ll_L()
{
  {
    init_simple_test("aBFu33_BFu31ll_L");
    static STRUCT_IF_C aBFu33_BFu31ll_L lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_BFu31ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_L");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_L");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_L");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_L, aBFu33_BFu31ll_L)
//============================================================================



static void Test_aBFu33_BFu31ll_S()
{
  {
    init_simple_test("aBFu33_BFu31ll_S");
    static STRUCT_IF_C aBFu33_BFu31ll_S lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_S");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_S");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_S");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_S, aBFu33_BFu31ll_S)
//============================================================================



static void Test_aBFu33_BFu31ll_Uc()
{
  {
    init_simple_test("aBFu33_BFu31ll_Uc");
    static STRUCT_IF_C aBFu33_BFu31ll_Uc lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu31ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_Uc");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_Uc, aBFu33_BFu31ll_Uc)
//============================================================================



static void Test_aBFu33_BFu31ll_Ui()
{
  {
    init_simple_test("aBFu33_BFu31ll_Ui");
    static STRUCT_IF_C aBFu33_BFu31ll_Ui lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu31ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_Ui");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_Ui, aBFu33_BFu31ll_Ui)
//============================================================================



static void Test_aBFu33_BFu31ll_Ul()
{
  {
    init_simple_test("aBFu33_BFu31ll_Ul");
    static STRUCT_IF_C aBFu33_BFu31ll_Ul lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_BFu31ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_Ul");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_Ul, aBFu33_BFu31ll_Ul)
//============================================================================



static void Test_aBFu33_BFu31ll_Us()
{
  {
    init_simple_test("aBFu33_BFu31ll_Us");
    static STRUCT_IF_C aBFu33_BFu31ll_Us lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu31ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_Us");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_Us, aBFu33_BFu31ll_Us)
//============================================================================



static void Test_aBFu33_BFu31ll_Vp()
{
  {
    init_simple_test("aBFu33_BFu31ll_Vp");
    static STRUCT_IF_C aBFu33_BFu31ll_Vp lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu33_BFu31ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu31ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu31ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu31ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu33_BFu31ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu31ll_Vp");
    check_field_offset(lv, v3, 8, "aBFu33_BFu31ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu31ll_Vp, aBFu33_BFu31ll_Vp)
//============================================================================



static void Test_aBFu33_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu32i");
    static STRUCT_IF_C aBFu33_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i, aBFu33_BFu32i)
//============================================================================



static void Test_aBFu33_BFu32i_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu15i");
    static STRUCT_IF_C aBFu33_BFu32i_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu15i");
    set_bf_and_test(lv, v3, 8, 1, 15, 1, "aBFu33_BFu32i_BFu15i");
    set_bf_and_test(lv, v3, 8, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu32i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu15i, aBFu33_BFu32i_BFu15i)
//============================================================================



static void Test_aBFu33_BFu32i_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu32i_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu15ll");
    set_bf_and_test(lv, v3, 8, 1, 15, 1, "aBFu33_BFu32i_BFu15ll");
    set_bf_and_test(lv, v3, 8, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu32i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu15ll, aBFu33_BFu32i_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu32i_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu15s");
    static STRUCT_IF_C aBFu33_BFu32i_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu15s");
    set_bf_and_test(lv, v3, 8, 1, 15, 1, "aBFu33_BFu32i_BFu15s");
    set_bf_and_test(lv, v3, 8, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu32i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu15s, aBFu33_BFu32i_BFu15s)
//============================================================================



static void Test_aBFu33_BFu32i_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu16i");
    static STRUCT_IF_C aBFu33_BFu32i_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu16i");
    set_bf_and_test(lv, v3, 8, 1, 16, 1, "aBFu33_BFu32i_BFu16i");
    set_bf_and_test(lv, v3, 8, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu32i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu16i, aBFu33_BFu32i_BFu16i)
//============================================================================



static void Test_aBFu33_BFu32i_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu32i_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu16ll");
    set_bf_and_test(lv, v3, 8, 1, 16, 1, "aBFu33_BFu32i_BFu16ll");
    set_bf_and_test(lv, v3, 8, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu32i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu16ll, aBFu33_BFu32i_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu32i_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu16s");
    static STRUCT_IF_C aBFu33_BFu32i_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu16s");
    set_bf_and_test(lv, v3, 8, 1, 16, 1, "aBFu33_BFu32i_BFu16s");
    set_bf_and_test(lv, v3, 8, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu32i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu16s, aBFu33_BFu32i_BFu16s)
//============================================================================



static void Test_aBFu33_BFu32i_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu17i");
    static STRUCT_IF_C aBFu33_BFu32i_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu17i");
    set_bf_and_test(lv, v3, 8, 1, 17, 1, "aBFu33_BFu32i_BFu17i");
    set_bf_and_test(lv, v3, 8, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu32i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu17i, aBFu33_BFu32i_BFu17i)
//============================================================================



static void Test_aBFu33_BFu32i_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu32i_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu17ll");
    set_bf_and_test(lv, v3, 8, 1, 17, 1, "aBFu33_BFu32i_BFu17ll");
    set_bf_and_test(lv, v3, 8, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu32i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu17ll, aBFu33_BFu32i_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu32i_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu1c");
    static STRUCT_IF_C aBFu33_BFu32i_BFu1c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu1c");
    set_bf_and_test(lv, v3, 8, 1, 1, 1, "aBFu33_BFu32i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu1c, aBFu33_BFu32i_BFu1c)
//============================================================================



static void Test_aBFu33_BFu32i_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu1i");
    static STRUCT_IF_C aBFu33_BFu32i_BFu1i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu1i");
    set_bf_and_test(lv, v3, 8, 1, 1, 1, "aBFu33_BFu32i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu1i, aBFu33_BFu32i_BFu1i)
//============================================================================



static void Test_aBFu33_BFu32i_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu32i_BFu1ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu1ll");
    set_bf_and_test(lv, v3, 8, 1, 1, 1, "aBFu33_BFu32i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu1ll, aBFu33_BFu32i_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu32i_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu1s");
    static STRUCT_IF_C aBFu33_BFu32i_BFu1s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu1s");
    set_bf_and_test(lv, v3, 8, 1, 1, 1, "aBFu33_BFu32i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu1s, aBFu33_BFu32i_BFu1s)
//============================================================================



static void Test_aBFu33_BFu32i_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu31i");
    static STRUCT_IF_C aBFu33_BFu32i_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu32i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu31i");
    set_bf_and_test(lv, v3, 8, 1, 31, 1, "aBFu33_BFu32i_BFu31i");
    set_bf_and_test(lv, v3, 8, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu32i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu31i, aBFu33_BFu32i_BFu31i)
//============================================================================



static void Test_aBFu33_BFu32i_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu32i_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu32i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu31ll");
    set_bf_and_test(lv, v3, 8, 1, 31, 1, "aBFu33_BFu32i_BFu31ll");
    set_bf_and_test(lv, v3, 8, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu32i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu31ll, aBFu33_BFu32i_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu32i_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu32i");
    static STRUCT_IF_C aBFu33_BFu32i_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu32i");
    set_bf_and_test(lv, v3, 8, 1, 32, 1, "aBFu33_BFu32i_BFu32i");
    set_bf_and_test(lv, v3, 8, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu32i, aBFu33_BFu32i_BFu32i)
//============================================================================



static void Test_aBFu33_BFu32i_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu32i_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 1, 32, 1, "aBFu33_BFu32i_BFu32ll");
    set_bf_and_test(lv, v3, 8, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu32ll, aBFu33_BFu32i_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu32i_BFu33()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu33");
    static STRUCT_IF_C aBFu33_BFu32i_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu33");
    set_bf_and_test(lv, v3, 8, 1, 33, 1, "aBFu33_BFu32i_BFu33");
    set_bf_and_test(lv, v3, 8, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu33, aBFu33_BFu32i_BFu33)
//============================================================================



static void Test_aBFu33_BFu32i_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu7c");
    static STRUCT_IF_C aBFu33_BFu32i_BFu7c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu7c");
    set_bf_and_test(lv, v3, 8, 1, 7, 1, "aBFu33_BFu32i_BFu7c");
    set_bf_and_test(lv, v3, 8, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu32i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu7c, aBFu33_BFu32i_BFu7c)
//============================================================================



static void Test_aBFu33_BFu32i_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu7i");
    static STRUCT_IF_C aBFu33_BFu32i_BFu7i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu7i");
    set_bf_and_test(lv, v3, 8, 1, 7, 1, "aBFu33_BFu32i_BFu7i");
    set_bf_and_test(lv, v3, 8, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu32i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu7i, aBFu33_BFu32i_BFu7i)
//============================================================================



static void Test_aBFu33_BFu32i_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu32i_BFu7ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu7ll");
    set_bf_and_test(lv, v3, 8, 1, 7, 1, "aBFu33_BFu32i_BFu7ll");
    set_bf_and_test(lv, v3, 8, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu32i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu7ll, aBFu33_BFu32i_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu32i_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu7s");
    static STRUCT_IF_C aBFu33_BFu32i_BFu7s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu7s");
    set_bf_and_test(lv, v3, 8, 1, 7, 1, "aBFu33_BFu32i_BFu7s");
    set_bf_and_test(lv, v3, 8, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu32i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu7s, aBFu33_BFu32i_BFu7s)
//============================================================================



static void Test_aBFu33_BFu32i_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu8c");
    static STRUCT_IF_C aBFu33_BFu32i_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu8c");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu33_BFu32i_BFu8c");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu32i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu8c, aBFu33_BFu32i_BFu8c)
//============================================================================



static void Test_aBFu33_BFu32i_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu8i");
    static STRUCT_IF_C aBFu33_BFu32i_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu8i");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu33_BFu32i_BFu8i");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu32i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu8i, aBFu33_BFu32i_BFu8i)
//============================================================================



static void Test_aBFu33_BFu32i_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu32i_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu8ll");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu33_BFu32i_BFu8ll");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu32i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu8ll, aBFu33_BFu32i_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu32i_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu8s");
    static STRUCT_IF_C aBFu33_BFu32i_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu8s");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu33_BFu32i_BFu8s");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu32i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu8s, aBFu33_BFu32i_BFu8s)
//============================================================================



static void Test_aBFu33_BFu32i_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu9i");
    static STRUCT_IF_C aBFu33_BFu32i_BFu9i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu9i");
    set_bf_and_test(lv, v3, 8, 1, 9, 1, "aBFu33_BFu32i_BFu9i");
    set_bf_and_test(lv, v3, 8, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu32i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu9i, aBFu33_BFu32i_BFu9i)
//============================================================================



static void Test_aBFu33_BFu32i_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu32i_BFu9ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu9ll");
    set_bf_and_test(lv, v3, 8, 1, 9, 1, "aBFu33_BFu32i_BFu9ll");
    set_bf_and_test(lv, v3, 8, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu32i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu9ll, aBFu33_BFu32i_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu32i_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu32i_BFu9s");
    static STRUCT_IF_C aBFu33_BFu32i_BFu9s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_BFu9s");
    set_bf_and_test(lv, v3, 8, 1, 9, 1, "aBFu33_BFu32i_BFu9s");
    set_bf_and_test(lv, v3, 8, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu32i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_BFu9s, aBFu33_BFu32i_BFu9s)
//============================================================================



static void Test_aBFu33_BFu32i_C()
{
  {
    init_simple_test("aBFu33_BFu32i_C");
    static STRUCT_IF_C aBFu33_BFu32i_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_C");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_C");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_C");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_C, aBFu33_BFu32i_C)
//============================================================================



static void Test_aBFu33_BFu32i_D()
{
  {
    init_simple_test("aBFu33_BFu32i_D");
    static STRUCT_IF_C aBFu33_BFu32i_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu32i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_D");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_D");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_D");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_D, aBFu33_BFu32i_D)
//============================================================================



static void Test_aBFu33_BFu32i_F()
{
  {
    init_simple_test("aBFu33_BFu32i_F");
    static STRUCT_IF_C aBFu33_BFu32i_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_F");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_F");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_F");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_F, aBFu33_BFu32i_F)
//============================================================================



static void Test_aBFu33_BFu32i_I()
{
  {
    init_simple_test("aBFu33_BFu32i_I");
    static STRUCT_IF_C aBFu33_BFu32i_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_I");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_I");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_I");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_I, aBFu33_BFu32i_I)
//============================================================================



static void Test_aBFu33_BFu32i_Ip()
{
  {
    init_simple_test("aBFu33_BFu32i_Ip");
    static STRUCT_IF_C aBFu33_BFu32i_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_BFu32i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_Ip");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_Ip, aBFu33_BFu32i_Ip)
//============================================================================



static void Test_aBFu33_BFu32i_L()
{
  {
    init_simple_test("aBFu33_BFu32i_L");
    static STRUCT_IF_C aBFu33_BFu32i_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu32i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_L");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_L");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_L");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_L, aBFu33_BFu32i_L)
//============================================================================



static void Test_aBFu33_BFu32i_S()
{
  {
    init_simple_test("aBFu33_BFu32i_S");
    static STRUCT_IF_C aBFu33_BFu32i_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_S");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_S");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_S");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_S, aBFu33_BFu32i_S)
//============================================================================



static void Test_aBFu33_BFu32i_Uc()
{
  {
    init_simple_test("aBFu33_BFu32i_Uc");
    static STRUCT_IF_C aBFu33_BFu32i_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_Uc");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_Uc, aBFu33_BFu32i_Uc)
//============================================================================



static void Test_aBFu33_BFu32i_Ui()
{
  {
    init_simple_test("aBFu33_BFu32i_Ui");
    static STRUCT_IF_C aBFu33_BFu32i_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_Ui");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_Ui, aBFu33_BFu32i_Ui)
//============================================================================



static void Test_aBFu33_BFu32i_Ul()
{
  {
    init_simple_test("aBFu33_BFu32i_Ul");
    static STRUCT_IF_C aBFu33_BFu32i_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu32i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_Ul");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_Ul, aBFu33_BFu32i_Ul)
//============================================================================



static void Test_aBFu33_BFu32i_Us()
{
  {
    init_simple_test("aBFu33_BFu32i_Us");
    static STRUCT_IF_C aBFu33_BFu32i_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_Us");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_Us");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_Us");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_Us, aBFu33_BFu32i_Us)
//============================================================================



static void Test_aBFu33_BFu32i_Vp()
{
  {
    init_simple_test("aBFu33_BFu32i_Vp");
    static STRUCT_IF_C aBFu33_BFu32i_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_BFu32i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32i_Vp");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32i_Vp, aBFu33_BFu32i_Vp)
//============================================================================



static void Test_aBFu33_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll, aBFu33_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu15i");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu15i");
    set_bf_and_test(lv, v3, 8, 1, 15, 1, "aBFu33_BFu32ll_BFu15i");
    set_bf_and_test(lv, v3, 8, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu32ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu15i, aBFu33_BFu32ll_BFu15i)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v3, 8, 1, 15, 1, "aBFu33_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v3, 8, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu32ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu15ll, aBFu33_BFu32ll_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu15s");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu15s");
    set_bf_and_test(lv, v3, 8, 1, 15, 1, "aBFu33_BFu32ll_BFu15s");
    set_bf_and_test(lv, v3, 8, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu32ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu15s, aBFu33_BFu32ll_BFu15s)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu16i");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu16i");
    set_bf_and_test(lv, v3, 8, 1, 16, 1, "aBFu33_BFu32ll_BFu16i");
    set_bf_and_test(lv, v3, 8, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu32ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu16i, aBFu33_BFu32ll_BFu16i)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v3, 8, 1, 16, 1, "aBFu33_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v3, 8, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu32ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu16ll, aBFu33_BFu32ll_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu16s");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu16s");
    set_bf_and_test(lv, v3, 8, 1, 16, 1, "aBFu33_BFu32ll_BFu16s");
    set_bf_and_test(lv, v3, 8, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu32ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu16s, aBFu33_BFu32ll_BFu16s)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu17i");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu17i");
    set_bf_and_test(lv, v3, 8, 1, 17, 1, "aBFu33_BFu32ll_BFu17i");
    set_bf_and_test(lv, v3, 8, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu32ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu17i, aBFu33_BFu32ll_BFu17i)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v3, 8, 1, 17, 1, "aBFu33_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v3, 8, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu32ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu17ll, aBFu33_BFu32ll_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu1c");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu1c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu1c");
    set_bf_and_test(lv, v3, 8, 1, 1, 1, "aBFu33_BFu32ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu1c, aBFu33_BFu32ll_BFu1c)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu1i");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu1i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu1i");
    set_bf_and_test(lv, v3, 8, 1, 1, 1, "aBFu33_BFu32ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu1i, aBFu33_BFu32ll_BFu1i)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu1ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v3, 8, 1, 1, 1, "aBFu33_BFu32ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu1ll, aBFu33_BFu32ll_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu1s");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu1s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu1s");
    set_bf_and_test(lv, v3, 8, 1, 1, 1, "aBFu33_BFu32ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu1s, aBFu33_BFu32ll_BFu1s)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu31i");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu32ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu31i");
    set_bf_and_test(lv, v3, 8, 1, 31, 1, "aBFu33_BFu32ll_BFu31i");
    set_bf_and_test(lv, v3, 8, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu32ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu31i, aBFu33_BFu32ll_BFu31i)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_BFu32ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v3, 8, 1, 31, 1, "aBFu33_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v3, 8, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu32ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu31ll, aBFu33_BFu32ll_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu32i");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 1, 32, 1, "aBFu33_BFu32ll_BFu32i");
    set_bf_and_test(lv, v3, 8, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu32i, aBFu33_BFu32ll_BFu32i)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 1, 32, 1, "aBFu33_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v3, 8, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu32ll, aBFu33_BFu32ll_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu33()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu33");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu33");
    set_bf_and_test(lv, v3, 8, 1, 33, 1, "aBFu33_BFu32ll_BFu33");
    set_bf_and_test(lv, v3, 8, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu33, aBFu33_BFu32ll_BFu33)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu7c");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu7c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu7c");
    set_bf_and_test(lv, v3, 8, 1, 7, 1, "aBFu33_BFu32ll_BFu7c");
    set_bf_and_test(lv, v3, 8, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu32ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu7c, aBFu33_BFu32ll_BFu7c)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu7i");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu7i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu7i");
    set_bf_and_test(lv, v3, 8, 1, 7, 1, "aBFu33_BFu32ll_BFu7i");
    set_bf_and_test(lv, v3, 8, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu32ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu7i, aBFu33_BFu32ll_BFu7i)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu7ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v3, 8, 1, 7, 1, "aBFu33_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v3, 8, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu32ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu7ll, aBFu33_BFu32ll_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu7s");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu7s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu32ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu7s");
    set_bf_and_test(lv, v3, 8, 1, 7, 1, "aBFu33_BFu32ll_BFu7s");
    set_bf_and_test(lv, v3, 8, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu32ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu7s, aBFu33_BFu32ll_BFu7s)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu8c");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu8c");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu33_BFu32ll_BFu8c");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu32ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu8c, aBFu33_BFu32ll_BFu8c)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu8i");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu8i");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu33_BFu32ll_BFu8i");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu32ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu8i, aBFu33_BFu32ll_BFu8i)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu33_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu32ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu8ll, aBFu33_BFu32ll_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu8s");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu8s");
    set_bf_and_test(lv, v3, 8, 1, 8, 1, "aBFu33_BFu32ll_BFu8s");
    set_bf_and_test(lv, v3, 8, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu32ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu8s, aBFu33_BFu32ll_BFu8s)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu9i");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu9i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu9i");
    set_bf_and_test(lv, v3, 8, 1, 9, 1, "aBFu33_BFu32ll_BFu9i");
    set_bf_and_test(lv, v3, 8, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu32ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu9i, aBFu33_BFu32ll_BFu9i)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu9ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v3, 8, 1, 9, 1, "aBFu33_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v3, 8, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu32ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu9ll, aBFu33_BFu32ll_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu32ll_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu32ll_BFu9s");
    static STRUCT_IF_C aBFu33_BFu32ll_BFu9s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_BFu9s");
    set_bf_and_test(lv, v3, 8, 1, 9, 1, "aBFu33_BFu32ll_BFu9s");
    set_bf_and_test(lv, v3, 8, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu32ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_BFu9s, aBFu33_BFu32ll_BFu9s)
//============================================================================



static void Test_aBFu33_BFu32ll_C()
{
  {
    init_simple_test("aBFu33_BFu32ll_C");
    static STRUCT_IF_C aBFu33_BFu32ll_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_C");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_C");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_C");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_C, aBFu33_BFu32ll_C)
//============================================================================



static void Test_aBFu33_BFu32ll_D()
{
  {
    init_simple_test("aBFu33_BFu32ll_D");
    static STRUCT_IF_C aBFu33_BFu32ll_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu32ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_D");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_D");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_D");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_D, aBFu33_BFu32ll_D)
//============================================================================



static void Test_aBFu33_BFu32ll_F()
{
  {
    init_simple_test("aBFu33_BFu32ll_F");
    static STRUCT_IF_C aBFu33_BFu32ll_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_F");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_F");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_F");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_F, aBFu33_BFu32ll_F)
//============================================================================



static void Test_aBFu33_BFu32ll_I()
{
  {
    init_simple_test("aBFu33_BFu32ll_I");
    static STRUCT_IF_C aBFu33_BFu32ll_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_I");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_I");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_I");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_I, aBFu33_BFu32ll_I)
//============================================================================



static void Test_aBFu33_BFu32ll_Ip()
{
  {
    init_simple_test("aBFu33_BFu32ll_Ip");
    static STRUCT_IF_C aBFu33_BFu32ll_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_BFu32ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_Ip");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_Ip, aBFu33_BFu32ll_Ip)
//============================================================================



static void Test_aBFu33_BFu32ll_L()
{
  {
    init_simple_test("aBFu33_BFu32ll_L");
    static STRUCT_IF_C aBFu33_BFu32ll_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu32ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_L");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_L");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_L");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_L, aBFu33_BFu32ll_L)
//============================================================================



static void Test_aBFu33_BFu32ll_S()
{
  {
    init_simple_test("aBFu33_BFu32ll_S");
    static STRUCT_IF_C aBFu33_BFu32ll_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_S");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_S");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_S");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_S, aBFu33_BFu32ll_S)
//============================================================================



static void Test_aBFu33_BFu32ll_Uc()
{
  {
    init_simple_test("aBFu33_BFu32ll_Uc");
    static STRUCT_IF_C aBFu33_BFu32ll_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu32ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_Uc");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_Uc, aBFu33_BFu32ll_Uc)
//============================================================================



static void Test_aBFu33_BFu32ll_Ui()
{
  {
    init_simple_test("aBFu33_BFu32ll_Ui");
    static STRUCT_IF_C aBFu33_BFu32ll_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu32ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_Ui");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_Ui, aBFu33_BFu32ll_Ui)
//============================================================================



static void Test_aBFu33_BFu32ll_Ul()
{
  {
    init_simple_test("aBFu33_BFu32ll_Ul");
    static STRUCT_IF_C aBFu33_BFu32ll_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu32ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_Ul");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_Ul, aBFu33_BFu32ll_Ul)
//============================================================================



static void Test_aBFu33_BFu32ll_Us()
{
  {
    init_simple_test("aBFu33_BFu32ll_Us");
    static STRUCT_IF_C aBFu33_BFu32ll_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu32ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_Us");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_Us, aBFu33_BFu32ll_Us)
//============================================================================



static void Test_aBFu33_BFu32ll_Vp()
{
  {
    init_simple_test("aBFu33_BFu32ll_Vp");
    static STRUCT_IF_C aBFu33_BFu32ll_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_BFu32ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu32ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu32ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu32ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu33_BFu32ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu32ll_Vp");
    check_field_offset(lv, v3, 9, "aBFu33_BFu32ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu32ll_Vp, aBFu33_BFu32ll_Vp)
//============================================================================



static void Test_aBFu33_BFu33()
{
  {
    init_simple_test("aBFu33_BFu33");
    static STRUCT_IF_C aBFu33_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33, aBFu33_BFu33)
//============================================================================



static void Test_aBFu33_BFu33_BFs33()
{
  {
    init_simple_test("aBFu33_BFu33_BFs33");
    static STRUCT_IF_C aBFu33_BFu33_BFs33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu33_BFs33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFs33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFs33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFu33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_sll(1LL<<32), "aBFu33_BFu33_BFs33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFs33, aBFu33_BFu33_BFs33)
//============================================================================



static void Test_aBFu33_BFu33_BFs33_BFs33()
{
  {
    init_simple_test("aBFu33_BFu33_BFs33_BFs33");
    static STRUCT_IF_C aBFu33_BFu33_BFs33_BFs33 lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu33_BFs33_BFs33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFs33_BFs33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFs33_BFs33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFs33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFs33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFs33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFu33_BFs33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_sll(1LL<<32), "aBFu33_BFu33_BFs33_BFs33");
    set_bf_and_test(lv, v4, 12, 3, 33, 1, "aBFu33_BFu33_BFs33_BFs33");
    set_bf_and_test(lv, v4, 12, 3, 33, hide_sll(1LL<<32), "aBFu33_BFu33_BFs33_BFs33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFs33_BFs33, aBFu33_BFu33_BFs33_BFs33)
//============================================================================



static void Test_aBFu33_BFu33_BFs33_BFu33()
{
  {
    init_simple_test("aBFu33_BFu33_BFs33_BFu33");
    static STRUCT_IF_C aBFu33_BFu33_BFs33_BFu33 lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu33_BFs33_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFs33_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFs33_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFs33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFs33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFs33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFu33_BFs33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_sll(1LL<<32), "aBFu33_BFu33_BFs33_BFu33");
    set_bf_and_test(lv, v4, 12, 3, 33, 1, "aBFu33_BFu33_BFs33_BFu33");
    set_bf_and_test(lv, v4, 12, 3, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFs33_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFs33_BFu33, aBFu33_BFu33_BFs33_BFu33)
//============================================================================



static void Test_aBFu33_BFu33_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu33_BFu15i");
    static STRUCT_IF_C aBFu33_BFu33_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu33_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu15i");
    set_bf_and_test(lv, v3, 8, 2, 15, 1, "aBFu33_BFu33_BFu15i");
    set_bf_and_test(lv, v3, 8, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu33_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu15i, aBFu33_BFu33_BFu15i)
//============================================================================



static void Test_aBFu33_BFu33_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu33_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu33_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu33_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu15ll");
    set_bf_and_test(lv, v3, 8, 2, 15, 1, "aBFu33_BFu33_BFu15ll");
    set_bf_and_test(lv, v3, 8, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu33_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu15ll, aBFu33_BFu33_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu33_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu33_BFu15s");
    static STRUCT_IF_C aBFu33_BFu33_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu33_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu15s");
    set_bf_and_test(lv, v3, 8, 2, 15, 1, "aBFu33_BFu33_BFu15s");
    set_bf_and_test(lv, v3, 8, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu33_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu15s, aBFu33_BFu33_BFu15s)
//============================================================================



static void Test_aBFu33_BFu33_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu33_BFu16i");
    static STRUCT_IF_C aBFu33_BFu33_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu33_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu16i");
    set_bf_and_test(lv, v3, 8, 2, 16, 1, "aBFu33_BFu33_BFu16i");
    set_bf_and_test(lv, v3, 8, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu33_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu16i, aBFu33_BFu33_BFu16i)
//============================================================================



static void Test_aBFu33_BFu33_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu33_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu33_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu33_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu16ll");
    set_bf_and_test(lv, v3, 8, 2, 16, 1, "aBFu33_BFu33_BFu16ll");
    set_bf_and_test(lv, v3, 8, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu33_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu16ll, aBFu33_BFu33_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu33_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu33_BFu16s");
    static STRUCT_IF_C aBFu33_BFu33_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu33_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu16s");
    set_bf_and_test(lv, v3, 8, 2, 16, 1, "aBFu33_BFu33_BFu16s");
    set_bf_and_test(lv, v3, 8, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu33_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu16s, aBFu33_BFu33_BFu16s)
//============================================================================



static void Test_aBFu33_BFu33_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu33_BFu17i");
    static STRUCT_IF_C aBFu33_BFu33_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu33_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu17i");
    set_bf_and_test(lv, v3, 8, 2, 17, 1, "aBFu33_BFu33_BFu17i");
    set_bf_and_test(lv, v3, 8, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu33_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu17i, aBFu33_BFu33_BFu17i)
//============================================================================



static void Test_aBFu33_BFu33_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu33_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu33_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu33_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu17ll");
    set_bf_and_test(lv, v3, 8, 2, 17, 1, "aBFu33_BFu33_BFu17ll");
    set_bf_and_test(lv, v3, 8, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu33_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu17ll, aBFu33_BFu33_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu33_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu33_BFu1c");
    static STRUCT_IF_C aBFu33_BFu33_BFu1c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu33_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu1c");
    set_bf_and_test(lv, v3, 8, 2, 1, 1, "aBFu33_BFu33_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu1c, aBFu33_BFu33_BFu1c)
//============================================================================



static void Test_aBFu33_BFu33_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu33_BFu1i");
    static STRUCT_IF_C aBFu33_BFu33_BFu1i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu33_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu1i");
    set_bf_and_test(lv, v3, 8, 2, 1, 1, "aBFu33_BFu33_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu1i, aBFu33_BFu33_BFu1i)
//============================================================================



static void Test_aBFu33_BFu33_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu33_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu33_BFu1ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu33_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu1ll");
    set_bf_and_test(lv, v3, 8, 2, 1, 1, "aBFu33_BFu33_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu1ll, aBFu33_BFu33_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu33_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu33_BFu1s");
    static STRUCT_IF_C aBFu33_BFu33_BFu1s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu33_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu1s");
    set_bf_and_test(lv, v3, 8, 2, 1, 1, "aBFu33_BFu33_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu1s, aBFu33_BFu33_BFu1s)
//============================================================================



static void Test_aBFu33_BFu33_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu33_BFu31i");
    static STRUCT_IF_C aBFu33_BFu33_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu33_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu31i");
    set_bf_and_test(lv, v3, 8, 2, 31, 1, "aBFu33_BFu33_BFu31i");
    set_bf_and_test(lv, v3, 8, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu33_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu31i, aBFu33_BFu33_BFu31i)
//============================================================================



static void Test_aBFu33_BFu33_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu33_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu33_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu33_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu31ll");
    set_bf_and_test(lv, v3, 8, 2, 31, 1, "aBFu33_BFu33_BFu31ll");
    set_bf_and_test(lv, v3, 8, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu33_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu31ll, aBFu33_BFu33_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu33_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu33_BFu32i");
    static STRUCT_IF_C aBFu33_BFu33_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu33_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu32i");
    set_bf_and_test(lv, v3, 8, 2, 32, 1, "aBFu33_BFu33_BFu32i");
    set_bf_and_test(lv, v3, 8, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu33_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu32i, aBFu33_BFu33_BFu32i)
//============================================================================



static void Test_aBFu33_BFu33_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu33_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu33_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu33_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu32ll");
    set_bf_and_test(lv, v3, 8, 2, 32, 1, "aBFu33_BFu33_BFu32ll");
    set_bf_and_test(lv, v3, 8, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu33_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu32ll, aBFu33_BFu33_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu33_BFu33()
{
  {
    init_simple_test("aBFu33_BFu33_BFu33");
    static STRUCT_IF_C aBFu33_BFu33_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu33_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFu33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu33, aBFu33_BFu33_BFu33)
//============================================================================



static void Test_aBFu33_BFu33_BFu33_BFs33()
{
  {
    init_simple_test("aBFu33_BFu33_BFu33_BFs33");
    static STRUCT_IF_C aBFu33_BFu33_BFu33_BFs33 lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu33_BFu33_BFs33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu33_BFs33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu33_BFs33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu33_BFs33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFu33_BFu33_BFs33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu33_BFs33");
    set_bf_and_test(lv, v4, 12, 3, 33, 1, "aBFu33_BFu33_BFu33_BFs33");
    set_bf_and_test(lv, v4, 12, 3, 33, hide_sll(1LL<<32), "aBFu33_BFu33_BFu33_BFs33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu33_BFs33, aBFu33_BFu33_BFu33_BFs33)
//============================================================================



static void Test_aBFu33_BFu33_BFu33_BFu33()
{
  {
    init_simple_test("aBFu33_BFu33_BFu33_BFu33");
    static STRUCT_IF_C aBFu33_BFu33_BFu33_BFu33 lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu33_BFu33_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu33_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu33_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, 1, "aBFu33_BFu33_BFu33_BFu33");
    set_bf_and_test(lv, v3, 8, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu33_BFu33");
    set_bf_and_test(lv, v4, 12, 3, 33, 1, "aBFu33_BFu33_BFu33_BFu33");
    set_bf_and_test(lv, v4, 12, 3, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu33_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu33_BFu33, aBFu33_BFu33_BFu33_BFu33)
//============================================================================



static void Test_aBFu33_BFu33_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu33_BFu7c");
    static STRUCT_IF_C aBFu33_BFu33_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu7c");
    set_bf_and_test(lv, v3, 8, 2, 7, 1, "aBFu33_BFu33_BFu7c");
    set_bf_and_test(lv, v3, 8, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu33_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu7c, aBFu33_BFu33_BFu7c)
//============================================================================



static void Test_aBFu33_BFu33_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu33_BFu7i");
    static STRUCT_IF_C aBFu33_BFu33_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu7i");
    set_bf_and_test(lv, v3, 8, 2, 7, 1, "aBFu33_BFu33_BFu7i");
    set_bf_and_test(lv, v3, 8, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu33_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu7i, aBFu33_BFu33_BFu7i)
//============================================================================



static void Test_aBFu33_BFu33_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu33_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu33_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu7ll");
    set_bf_and_test(lv, v3, 8, 2, 7, 1, "aBFu33_BFu33_BFu7ll");
    set_bf_and_test(lv, v3, 8, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu33_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu7ll, aBFu33_BFu33_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu33_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu33_BFu7s");
    static STRUCT_IF_C aBFu33_BFu33_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu7s");
    set_bf_and_test(lv, v3, 8, 2, 7, 1, "aBFu33_BFu33_BFu7s");
    set_bf_and_test(lv, v3, 8, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu33_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu7s, aBFu33_BFu33_BFu7s)
//============================================================================



static void Test_aBFu33_BFu33_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu33_BFu8c");
    static STRUCT_IF_C aBFu33_BFu33_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu8c");
    set_bf_and_test(lv, v3, 8, 2, 8, 1, "aBFu33_BFu33_BFu8c");
    set_bf_and_test(lv, v3, 8, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu33_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu8c, aBFu33_BFu33_BFu8c)
//============================================================================



static void Test_aBFu33_BFu33_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu33_BFu8i");
    static STRUCT_IF_C aBFu33_BFu33_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu8i");
    set_bf_and_test(lv, v3, 8, 2, 8, 1, "aBFu33_BFu33_BFu8i");
    set_bf_and_test(lv, v3, 8, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu33_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu8i, aBFu33_BFu33_BFu8i)
//============================================================================



static void Test_aBFu33_BFu33_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu33_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu33_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu8ll");
    set_bf_and_test(lv, v3, 8, 2, 8, 1, "aBFu33_BFu33_BFu8ll");
    set_bf_and_test(lv, v3, 8, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu33_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu8ll, aBFu33_BFu33_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu33_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu33_BFu8s");
    static STRUCT_IF_C aBFu33_BFu33_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu8s");
    set_bf_and_test(lv, v3, 8, 2, 8, 1, "aBFu33_BFu33_BFu8s");
    set_bf_and_test(lv, v3, 8, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu33_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu8s, aBFu33_BFu33_BFu8s)
//============================================================================



static void Test_aBFu33_BFu33_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu33_BFu9i");
    static STRUCT_IF_C aBFu33_BFu33_BFu9i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu9i");
    set_bf_and_test(lv, v3, 8, 2, 9, 1, "aBFu33_BFu33_BFu9i");
    set_bf_and_test(lv, v3, 8, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu33_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu9i, aBFu33_BFu33_BFu9i)
//============================================================================



static void Test_aBFu33_BFu33_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu33_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu33_BFu9ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu9ll");
    set_bf_and_test(lv, v3, 8, 2, 9, 1, "aBFu33_BFu33_BFu9ll");
    set_bf_and_test(lv, v3, 8, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu33_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu9ll, aBFu33_BFu33_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu33_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu33_BFu9s");
    static STRUCT_IF_C aBFu33_BFu33_BFu9s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_BFu9s");
    set_bf_and_test(lv, v3, 8, 2, 9, 1, "aBFu33_BFu33_BFu9s");
    set_bf_and_test(lv, v3, 8, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu33_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_BFu9s, aBFu33_BFu33_BFu9s)
//============================================================================



static void Test_aBFu33_BFu33_C()
{
  {
    init_simple_test("aBFu33_BFu33_C");
    static STRUCT_IF_C aBFu33_BFu33_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_C");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_C");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_C");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_C, aBFu33_BFu33_C)
//============================================================================



static void Test_aBFu33_BFu33_D()
{
  {
    init_simple_test("aBFu33_BFu33_D");
    static STRUCT_IF_C aBFu33_BFu33_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu33_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_D");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_D");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_D");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_D, aBFu33_BFu33_D)
//============================================================================



static void Test_aBFu33_BFu33_F()
{
  {
    init_simple_test("aBFu33_BFu33_F");
    static STRUCT_IF_C aBFu33_BFu33_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu33_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_F");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_F");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_F");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_F, aBFu33_BFu33_F)
//============================================================================



static void Test_aBFu33_BFu33_I()
{
  {
    init_simple_test("aBFu33_BFu33_I");
    static STRUCT_IF_C aBFu33_BFu33_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu33_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_I");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_I");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_I");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_I, aBFu33_BFu33_I)
//============================================================================



static void Test_aBFu33_BFu33_Ip()
{
  {
    init_simple_test("aBFu33_BFu33_Ip");
    static STRUCT_IF_C aBFu33_BFu33_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_BFu33_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Ip");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_Ip");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Ip");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_Ip, aBFu33_BFu33_Ip)
//============================================================================



static void Test_aBFu33_BFu33_L()
{
  {
    init_simple_test("aBFu33_BFu33_L");
    static STRUCT_IF_C aBFu33_BFu33_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu33_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_L");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_L");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_L");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_L, aBFu33_BFu33_L)
//============================================================================



static void Test_aBFu33_BFu33_S()
{
  {
    init_simple_test("aBFu33_BFu33_S");
    static STRUCT_IF_C aBFu33_BFu33_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu33_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_S");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_S");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_S");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_S, aBFu33_BFu33_S)
//============================================================================



static void Test_aBFu33_BFu33_Uc()
{
  {
    init_simple_test("aBFu33_BFu33_Uc");
    static STRUCT_IF_C aBFu33_BFu33_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu33_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Uc");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_Uc");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Uc");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_Uc, aBFu33_BFu33_Uc)
//============================================================================



static void Test_aBFu33_BFu33_Ui()
{
  {
    init_simple_test("aBFu33_BFu33_Ui");
    static STRUCT_IF_C aBFu33_BFu33_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu33_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Ui");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_Ui");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Ui");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_Ui, aBFu33_BFu33_Ui)
//============================================================================



static void Test_aBFu33_BFu33_Ul()
{
  {
    init_simple_test("aBFu33_BFu33_Ul");
    static STRUCT_IF_C aBFu33_BFu33_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_BFu33_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Ul");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_Ul");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Ul");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_Ul, aBFu33_BFu33_Ul)
//============================================================================



static void Test_aBFu33_BFu33_Us()
{
  {
    init_simple_test("aBFu33_BFu33_Us");
    static STRUCT_IF_C aBFu33_BFu33_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_BFu33_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Us");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_Us");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Us");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_Us, aBFu33_BFu33_Us)
//============================================================================



static void Test_aBFu33_BFu33_Vp()
{
  {
    init_simple_test("aBFu33_BFu33_Vp");
    static STRUCT_IF_C aBFu33_BFu33_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_BFu33_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu33_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu33_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Vp");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu33_BFu33_Vp");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu33_Vp");
    check_field_offset(lv, v3, 9, "aBFu33_BFu33_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu33_Vp, aBFu33_BFu33_Vp)
//============================================================================



static void Test_aBFu33_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu7c");
    static STRUCT_IF_C aBFu33_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c, aBFu33_BFu7c)
//============================================================================



static void Test_aBFu33_BFu7c_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu15i");
    static STRUCT_IF_C aBFu33_BFu7c_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7c_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu15i, aBFu33_BFu7c_BFu15i)
//============================================================================



static void Test_aBFu33_BFu7c_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu7c_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7c_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu15ll, aBFu33_BFu7c_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu7c_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu15s");
    static STRUCT_IF_C aBFu33_BFu7c_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7c_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu15s, aBFu33_BFu7c_BFu15s)
//============================================================================



static void Test_aBFu33_BFu7c_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu16i");
    static STRUCT_IF_C aBFu33_BFu7c_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7c_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu16i, aBFu33_BFu7c_BFu16i)
//============================================================================



static void Test_aBFu33_BFu7c_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu7c_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7c_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu16ll, aBFu33_BFu7c_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu7c_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu16s");
    static STRUCT_IF_C aBFu33_BFu7c_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7c_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu16s, aBFu33_BFu7c_BFu16s)
//============================================================================



static void Test_aBFu33_BFu7c_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu17i");
    static STRUCT_IF_C aBFu33_BFu7c_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu7c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu33_BFu7c_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu7c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu17i, aBFu33_BFu7c_BFu17i)
//============================================================================



static void Test_aBFu33_BFu7c_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu7c_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu7c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu33_BFu7c_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu7c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu17ll, aBFu33_BFu7c_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu7c_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu1c");
    static STRUCT_IF_C aBFu33_BFu7c_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu1c");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu1c, aBFu33_BFu7c_BFu1c)
//============================================================================



static void Test_aBFu33_BFu7c_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu1i");
    static STRUCT_IF_C aBFu33_BFu7c_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu1i");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu1i, aBFu33_BFu7c_BFu1i)
//============================================================================



static void Test_aBFu33_BFu7c_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu7c_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu1ll");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu1ll, aBFu33_BFu7c_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu7c_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu1s");
    static STRUCT_IF_C aBFu33_BFu7c_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu1s");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu1s, aBFu33_BFu7c_BFu1s)
//============================================================================



static void Test_aBFu33_BFu7c_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu31i");
    static STRUCT_IF_C aBFu33_BFu7c_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu33_BFu7c_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu7c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu31i, aBFu33_BFu7c_BFu31i)
//============================================================================



static void Test_aBFu33_BFu7c_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu7c_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu33_BFu7c_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu7c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu31ll, aBFu33_BFu7c_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu7c_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu32i");
    static STRUCT_IF_C aBFu33_BFu7c_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu33_BFu7c_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu7c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu32i, aBFu33_BFu7c_BFu32i)
//============================================================================



static void Test_aBFu33_BFu7c_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu7c_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu33_BFu7c_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu7c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu32ll, aBFu33_BFu7c_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu7c_BFu33()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu33");
    static STRUCT_IF_C aBFu33_BFu7c_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu7c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu33_BFu7c_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu33, aBFu33_BFu7c_BFu33)
//============================================================================



static void Test_aBFu33_BFu7c_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu7c");
    static STRUCT_IF_C aBFu33_BFu7c_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu7c, aBFu33_BFu7c_BFu7c)
//============================================================================



static void Test_aBFu33_BFu7c_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu7i");
    static STRUCT_IF_C aBFu33_BFu7c_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu7i, aBFu33_BFu7c_BFu7i)
//============================================================================



static void Test_aBFu33_BFu7c_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu7ll, aBFu33_BFu7c_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu7c_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu7s");
    static STRUCT_IF_C aBFu33_BFu7c_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu7s, aBFu33_BFu7c_BFu7s)
//============================================================================



static void Test_aBFu33_BFu7c_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu8c");
    static STRUCT_IF_C aBFu33_BFu7c_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7c_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu8c, aBFu33_BFu7c_BFu8c)
//============================================================================



static void Test_aBFu33_BFu7c_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu8i");
    static STRUCT_IF_C aBFu33_BFu7c_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7c_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu8i, aBFu33_BFu7c_BFu8i)
//============================================================================



static void Test_aBFu33_BFu7c_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu7c_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7c_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu8ll, aBFu33_BFu7c_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu7c_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu8s");
    static STRUCT_IF_C aBFu33_BFu7c_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7c_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu8s, aBFu33_BFu7c_BFu8s)
//============================================================================



static void Test_aBFu33_BFu7c_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu9i");
    static STRUCT_IF_C aBFu33_BFu7c_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7c_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu9i, aBFu33_BFu7c_BFu9i)
//============================================================================



static void Test_aBFu33_BFu7c_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu7c_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7c_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu9ll, aBFu33_BFu7c_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu7c_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu7c_BFu9s");
    static STRUCT_IF_C aBFu33_BFu7c_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7c_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_BFu9s, aBFu33_BFu7c_BFu9s)
//============================================================================



static void Test_aBFu33_BFu7c_C()
{
  {
    init_simple_test("aBFu33_BFu7c_C");
    static STRUCT_IF_C aBFu33_BFu7c_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_C");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_C");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_C");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_C, aBFu33_BFu7c_C)
//============================================================================



static void Test_aBFu33_BFu7c_D()
{
  {
    init_simple_test("aBFu33_BFu7c_D");
    static STRUCT_IF_C aBFu33_BFu7c_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_D");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_D");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_D");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_D, aBFu33_BFu7c_D)
//============================================================================



static void Test_aBFu33_BFu7c_F()
{
  {
    init_simple_test("aBFu33_BFu7c_F");
    static STRUCT_IF_C aBFu33_BFu7c_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_F");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_F");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_F");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_F, aBFu33_BFu7c_F)
//============================================================================



static void Test_aBFu33_BFu7c_I()
{
  {
    init_simple_test("aBFu33_BFu7c_I");
    static STRUCT_IF_C aBFu33_BFu7c_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_I");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_I");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_I");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_I, aBFu33_BFu7c_I)
//============================================================================



static void Test_aBFu33_BFu7c_Ip()
{
  {
    init_simple_test("aBFu33_BFu7c_Ip");
    static STRUCT_IF_C aBFu33_BFu7c_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu7c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_Ip");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_Ip");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_Ip");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_Ip, aBFu33_BFu7c_Ip)
//============================================================================



static void Test_aBFu33_BFu7c_L()
{
  {
    init_simple_test("aBFu33_BFu7c_L");
    static STRUCT_IF_C aBFu33_BFu7c_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_L");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_L");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_L");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_L, aBFu33_BFu7c_L)
//============================================================================



static void Test_aBFu33_BFu7c_S()
{
  {
    init_simple_test("aBFu33_BFu7c_S");
    static STRUCT_IF_C aBFu33_BFu7c_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_S");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_S");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_S");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_S, aBFu33_BFu7c_S)
//============================================================================



static void Test_aBFu33_BFu7c_Uc()
{
  {
    init_simple_test("aBFu33_BFu7c_Uc");
    static STRUCT_IF_C aBFu33_BFu7c_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_Uc");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_Uc");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_Uc");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_Uc, aBFu33_BFu7c_Uc)
//============================================================================



static void Test_aBFu33_BFu7c_Ui()
{
  {
    init_simple_test("aBFu33_BFu7c_Ui");
    static STRUCT_IF_C aBFu33_BFu7c_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_Ui");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_Ui");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_Ui");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_Ui, aBFu33_BFu7c_Ui)
//============================================================================



static void Test_aBFu33_BFu7c_Ul()
{
  {
    init_simple_test("aBFu33_BFu7c_Ul");
    static STRUCT_IF_C aBFu33_BFu7c_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_Ul");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_Ul");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_Ul");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_Ul, aBFu33_BFu7c_Ul)
//============================================================================



static void Test_aBFu33_BFu7c_Us()
{
  {
    init_simple_test("aBFu33_BFu7c_Us");
    static STRUCT_IF_C aBFu33_BFu7c_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_Us");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_Us");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_Us");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_Us, aBFu33_BFu7c_Us)
//============================================================================



static void Test_aBFu33_BFu7c_Vp()
{
  {
    init_simple_test("aBFu33_BFu7c_Vp");
    static STRUCT_IF_C aBFu33_BFu7c_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu7c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7c_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7c_Vp");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7c_Vp");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7c_Vp");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7c_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7c_Vp, aBFu33_BFu7c_Vp)
//============================================================================



static void Test_aBFu33_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu7i");
    static STRUCT_IF_C aBFu33_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i, aBFu33_BFu7i)
//============================================================================



static void Test_aBFu33_BFu7i_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu15i");
    static STRUCT_IF_C aBFu33_BFu7i_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7i_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu15i, aBFu33_BFu7i_BFu15i)
//============================================================================



static void Test_aBFu33_BFu7i_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu7i_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7i_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu15ll, aBFu33_BFu7i_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu7i_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu15s");
    static STRUCT_IF_C aBFu33_BFu7i_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7i_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu15s, aBFu33_BFu7i_BFu15s)
//============================================================================



static void Test_aBFu33_BFu7i_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu16i");
    static STRUCT_IF_C aBFu33_BFu7i_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7i_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu16i, aBFu33_BFu7i_BFu16i)
//============================================================================



static void Test_aBFu33_BFu7i_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu7i_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu16ll, aBFu33_BFu7i_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu7i_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu16s");
    static STRUCT_IF_C aBFu33_BFu7i_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7i_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu16s, aBFu33_BFu7i_BFu16s)
//============================================================================



static void Test_aBFu33_BFu7i_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu17i");
    static STRUCT_IF_C aBFu33_BFu7i_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu7i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu33_BFu7i_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu7i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu17i, aBFu33_BFu7i_BFu17i)
//============================================================================



static void Test_aBFu33_BFu7i_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu7i_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu7i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu33_BFu7i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu7i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu17ll, aBFu33_BFu7i_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu7i_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu1c");
    static STRUCT_IF_C aBFu33_BFu7i_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu1c");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu1c, aBFu33_BFu7i_BFu1c)
//============================================================================



static void Test_aBFu33_BFu7i_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu1i");
    static STRUCT_IF_C aBFu33_BFu7i_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu1i");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu1i, aBFu33_BFu7i_BFu1i)
//============================================================================



static void Test_aBFu33_BFu7i_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu7i_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu1ll");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu1ll, aBFu33_BFu7i_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu7i_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu1s");
    static STRUCT_IF_C aBFu33_BFu7i_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu1s");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu1s, aBFu33_BFu7i_BFu1s)
//============================================================================



static void Test_aBFu33_BFu7i_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu31i");
    static STRUCT_IF_C aBFu33_BFu7i_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu33_BFu7i_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu7i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu31i, aBFu33_BFu7i_BFu31i)
//============================================================================



static void Test_aBFu33_BFu7i_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu7i_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu33_BFu7i_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu7i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu31ll, aBFu33_BFu7i_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu7i_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu32i");
    static STRUCT_IF_C aBFu33_BFu7i_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu33_BFu7i_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu7i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu32i, aBFu33_BFu7i_BFu32i)
//============================================================================



static void Test_aBFu33_BFu7i_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu7i_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu33_BFu7i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu7i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu32ll, aBFu33_BFu7i_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu7i_BFu33()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu33");
    static STRUCT_IF_C aBFu33_BFu7i_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu7i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu33_BFu7i_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu33, aBFu33_BFu7i_BFu33)
//============================================================================



static void Test_aBFu33_BFu7i_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu7c");
    static STRUCT_IF_C aBFu33_BFu7i_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu7c, aBFu33_BFu7i_BFu7c)
//============================================================================



static void Test_aBFu33_BFu7i_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu7i");
    static STRUCT_IF_C aBFu33_BFu7i_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu7i, aBFu33_BFu7i_BFu7i)
//============================================================================



static void Test_aBFu33_BFu7i_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu7i_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu7ll, aBFu33_BFu7i_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu7i_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu7s");
    static STRUCT_IF_C aBFu33_BFu7i_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu7s, aBFu33_BFu7i_BFu7s)
//============================================================================



static void Test_aBFu33_BFu7i_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu8c");
    static STRUCT_IF_C aBFu33_BFu7i_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7i_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu8c, aBFu33_BFu7i_BFu8c)
//============================================================================



static void Test_aBFu33_BFu7i_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu8i");
    static STRUCT_IF_C aBFu33_BFu7i_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7i_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu8i, aBFu33_BFu7i_BFu8i)
//============================================================================



static void Test_aBFu33_BFu7i_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu7i_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7i_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu8ll, aBFu33_BFu7i_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu7i_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu8s");
    static STRUCT_IF_C aBFu33_BFu7i_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7i_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu8s, aBFu33_BFu7i_BFu8s)
//============================================================================



static void Test_aBFu33_BFu7i_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu9i");
    static STRUCT_IF_C aBFu33_BFu7i_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7i_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu9i, aBFu33_BFu7i_BFu9i)
//============================================================================



static void Test_aBFu33_BFu7i_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu7i_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7i_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu9ll, aBFu33_BFu7i_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu7i_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu7i_BFu9s");
    static STRUCT_IF_C aBFu33_BFu7i_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7i_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_BFu9s, aBFu33_BFu7i_BFu9s)
//============================================================================



static void Test_aBFu33_BFu7i_C()
{
  {
    init_simple_test("aBFu33_BFu7i_C");
    static STRUCT_IF_C aBFu33_BFu7i_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_C");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_C");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_C");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_C, aBFu33_BFu7i_C)
//============================================================================



static void Test_aBFu33_BFu7i_D()
{
  {
    init_simple_test("aBFu33_BFu7i_D");
    static STRUCT_IF_C aBFu33_BFu7i_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_D");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_D");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_D");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_D, aBFu33_BFu7i_D)
//============================================================================



static void Test_aBFu33_BFu7i_F()
{
  {
    init_simple_test("aBFu33_BFu7i_F");
    static STRUCT_IF_C aBFu33_BFu7i_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_F");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_F");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_F");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_F, aBFu33_BFu7i_F)
//============================================================================



static void Test_aBFu33_BFu7i_I()
{
  {
    init_simple_test("aBFu33_BFu7i_I");
    static STRUCT_IF_C aBFu33_BFu7i_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_I");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_I");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_I");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_I, aBFu33_BFu7i_I)
//============================================================================



static void Test_aBFu33_BFu7i_Ip()
{
  {
    init_simple_test("aBFu33_BFu7i_Ip");
    static STRUCT_IF_C aBFu33_BFu7i_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu7i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_Ip");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_Ip, aBFu33_BFu7i_Ip)
//============================================================================



static void Test_aBFu33_BFu7i_L()
{
  {
    init_simple_test("aBFu33_BFu7i_L");
    static STRUCT_IF_C aBFu33_BFu7i_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_L");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_L");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_L");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_L, aBFu33_BFu7i_L)
//============================================================================



static void Test_aBFu33_BFu7i_S()
{
  {
    init_simple_test("aBFu33_BFu7i_S");
    static STRUCT_IF_C aBFu33_BFu7i_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_S");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_S");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_S");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_S, aBFu33_BFu7i_S)
//============================================================================



static void Test_aBFu33_BFu7i_Uc()
{
  {
    init_simple_test("aBFu33_BFu7i_Uc");
    static STRUCT_IF_C aBFu33_BFu7i_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_Uc");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_Uc, aBFu33_BFu7i_Uc)
//============================================================================



static void Test_aBFu33_BFu7i_Ui()
{
  {
    init_simple_test("aBFu33_BFu7i_Ui");
    static STRUCT_IF_C aBFu33_BFu7i_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_Ui");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_Ui, aBFu33_BFu7i_Ui)
//============================================================================



static void Test_aBFu33_BFu7i_Ul()
{
  {
    init_simple_test("aBFu33_BFu7i_Ul");
    static STRUCT_IF_C aBFu33_BFu7i_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_Ul");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_Ul, aBFu33_BFu7i_Ul)
//============================================================================



static void Test_aBFu33_BFu7i_Us()
{
  {
    init_simple_test("aBFu33_BFu7i_Us");
    static STRUCT_IF_C aBFu33_BFu7i_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_Us");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_Us");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_Us");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_Us, aBFu33_BFu7i_Us)
//============================================================================



static void Test_aBFu33_BFu7i_Vp()
{
  {
    init_simple_test("aBFu33_BFu7i_Vp");
    static STRUCT_IF_C aBFu33_BFu7i_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu7i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7i_Vp");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7i_Vp, aBFu33_BFu7i_Vp)
//============================================================================



static void Test_aBFu33_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll, aBFu33_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu15i");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7ll_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu15i, aBFu33_BFu7ll_BFu15i)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu15ll, aBFu33_BFu7ll_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu15s");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7ll_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu15s, aBFu33_BFu7ll_BFu15s)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu16i");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu16i, aBFu33_BFu7ll_BFu16i)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu16ll, aBFu33_BFu7ll_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu16s");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu16s, aBFu33_BFu7ll_BFu16s)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu17i");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu7ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu33_BFu7ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu7ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu17i, aBFu33_BFu7ll_BFu17i)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu7ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu33_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu7ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu17ll, aBFu33_BFu7ll_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu1c");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu1c");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu1c, aBFu33_BFu7ll_BFu1c)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu1i");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu1i");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu1i, aBFu33_BFu7ll_BFu1i)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu1ll");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu1ll, aBFu33_BFu7ll_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu1s");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu1s");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu1s, aBFu33_BFu7ll_BFu1s)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu31i");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu33_BFu7ll_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu7ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu31i, aBFu33_BFu7ll_BFu31i)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu33_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu7ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu31ll, aBFu33_BFu7ll_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu32i");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu33_BFu7ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu7ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu32i, aBFu33_BFu7ll_BFu32i)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu33_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu7ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu32ll, aBFu33_BFu7ll_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu33()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu33");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu7ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu33_BFu7ll_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu33, aBFu33_BFu7ll_BFu33)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu7c");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu7c, aBFu33_BFu7ll_BFu7c)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu7i");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu7i, aBFu33_BFu7ll_BFu7i)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu7ll, aBFu33_BFu7ll_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu7s");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu7s, aBFu33_BFu7ll_BFu7s)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu8c");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7ll_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu8c, aBFu33_BFu7ll_BFu8c)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu8i");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7ll_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu8i, aBFu33_BFu7ll_BFu8i)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu8ll, aBFu33_BFu7ll_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu8s");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7ll_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu8s, aBFu33_BFu7ll_BFu8s)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu9i");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7ll_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu9i, aBFu33_BFu7ll_BFu9i)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu9ll, aBFu33_BFu7ll_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu7ll_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu7ll_BFu9s");
    static STRUCT_IF_C aBFu33_BFu7ll_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7ll_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_BFu9s, aBFu33_BFu7ll_BFu9s)
//============================================================================



static void Test_aBFu33_BFu7ll_C()
{
  {
    init_simple_test("aBFu33_BFu7ll_C");
    static STRUCT_IF_C aBFu33_BFu7ll_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_C");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_C");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_C");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_C, aBFu33_BFu7ll_C)
//============================================================================



static void Test_aBFu33_BFu7ll_D()
{
  {
    init_simple_test("aBFu33_BFu7ll_D");
    static STRUCT_IF_C aBFu33_BFu7ll_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_D");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_D");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_D");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_D, aBFu33_BFu7ll_D)
//============================================================================



static void Test_aBFu33_BFu7ll_F()
{
  {
    init_simple_test("aBFu33_BFu7ll_F");
    static STRUCT_IF_C aBFu33_BFu7ll_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_F");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_F");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_F");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_F, aBFu33_BFu7ll_F)
//============================================================================



static void Test_aBFu33_BFu7ll_I()
{
  {
    init_simple_test("aBFu33_BFu7ll_I");
    static STRUCT_IF_C aBFu33_BFu7ll_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_I");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_I");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_I");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_I, aBFu33_BFu7ll_I)
//============================================================================



static void Test_aBFu33_BFu7ll_Ip()
{
  {
    init_simple_test("aBFu33_BFu7ll_Ip");
    static STRUCT_IF_C aBFu33_BFu7ll_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu7ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_Ip");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_Ip, aBFu33_BFu7ll_Ip)
//============================================================================



static void Test_aBFu33_BFu7ll_L()
{
  {
    init_simple_test("aBFu33_BFu7ll_L");
    static STRUCT_IF_C aBFu33_BFu7ll_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_L");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_L");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_L");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_L, aBFu33_BFu7ll_L)
//============================================================================



static void Test_aBFu33_BFu7ll_S()
{
  {
    init_simple_test("aBFu33_BFu7ll_S");
    static STRUCT_IF_C aBFu33_BFu7ll_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_S");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_S");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_S");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_S, aBFu33_BFu7ll_S)
//============================================================================



static void Test_aBFu33_BFu7ll_Uc()
{
  {
    init_simple_test("aBFu33_BFu7ll_Uc");
    static STRUCT_IF_C aBFu33_BFu7ll_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_Uc");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_Uc, aBFu33_BFu7ll_Uc)
//============================================================================



static void Test_aBFu33_BFu7ll_Ui()
{
  {
    init_simple_test("aBFu33_BFu7ll_Ui");
    static STRUCT_IF_C aBFu33_BFu7ll_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_Ui");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_Ui, aBFu33_BFu7ll_Ui)
//============================================================================



static void Test_aBFu33_BFu7ll_Ul()
{
  {
    init_simple_test("aBFu33_BFu7ll_Ul");
    static STRUCT_IF_C aBFu33_BFu7ll_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_Ul");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_Ul, aBFu33_BFu7ll_Ul)
//============================================================================



static void Test_aBFu33_BFu7ll_Us()
{
  {
    init_simple_test("aBFu33_BFu7ll_Us");
    static STRUCT_IF_C aBFu33_BFu7ll_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_Us");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_Us, aBFu33_BFu7ll_Us)
//============================================================================



static void Test_aBFu33_BFu7ll_Vp()
{
  {
    init_simple_test("aBFu33_BFu7ll_Vp");
    static STRUCT_IF_C aBFu33_BFu7ll_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu7ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7ll_Vp");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7ll_Vp, aBFu33_BFu7ll_Vp)
//============================================================================



static void Test_aBFu33_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu7s");
    static STRUCT_IF_C aBFu33_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu33_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s, aBFu33_BFu7s)
//============================================================================



static void Test_aBFu33_BFu7s_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu15i");
    static STRUCT_IF_C aBFu33_BFu7s_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7s_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu15i, aBFu33_BFu7s_BFu15i)
//============================================================================



static void Test_aBFu33_BFu7s_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu7s_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7s_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu15ll, aBFu33_BFu7s_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu7s_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu15s");
    static STRUCT_IF_C aBFu33_BFu7s_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu33_BFu7s_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu33_BFu7s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu15s, aBFu33_BFu7s_BFu15s)
//============================================================================



static void Test_aBFu33_BFu7s_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu16i");
    static STRUCT_IF_C aBFu33_BFu7s_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7s_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu16i, aBFu33_BFu7s_BFu16i)
//============================================================================



static void Test_aBFu33_BFu7s_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu7s_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7s_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu16ll, aBFu33_BFu7s_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu7s_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu16s");
    static STRUCT_IF_C aBFu33_BFu7s_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu33_BFu7s_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu33_BFu7s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu16s, aBFu33_BFu7s_BFu16s)
//============================================================================



static void Test_aBFu33_BFu7s_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu17i");
    static STRUCT_IF_C aBFu33_BFu7s_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu7s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu33_BFu7s_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu7s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu17i, aBFu33_BFu7s_BFu17i)
//============================================================================



static void Test_aBFu33_BFu7s_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu7s_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu7s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu33_BFu7s_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu33_BFu7s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu17ll, aBFu33_BFu7s_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu7s_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu1c");
    static STRUCT_IF_C aBFu33_BFu7s_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu1c");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu1c, aBFu33_BFu7s_BFu1c)
//============================================================================



static void Test_aBFu33_BFu7s_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu1i");
    static STRUCT_IF_C aBFu33_BFu7s_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu1i");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu1i, aBFu33_BFu7s_BFu1i)
//============================================================================



static void Test_aBFu33_BFu7s_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu7s_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu1ll");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu1ll, aBFu33_BFu7s_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu7s_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu1s");
    static STRUCT_IF_C aBFu33_BFu7s_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu1s");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu33_BFu7s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu1s, aBFu33_BFu7s_BFu1s)
//============================================================================



static void Test_aBFu33_BFu7s_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu31i");
    static STRUCT_IF_C aBFu33_BFu7s_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu33_BFu7s_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu7s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu31i, aBFu33_BFu7s_BFu31i)
//============================================================================



static void Test_aBFu33_BFu7s_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu7s_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu33_BFu7s_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu33_BFu7s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu31ll, aBFu33_BFu7s_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu7s_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu32i");
    static STRUCT_IF_C aBFu33_BFu7s_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu33_BFu7s_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu7s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu32i, aBFu33_BFu7s_BFu32i)
//============================================================================



static void Test_aBFu33_BFu7s_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu7s_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu33_BFu7s_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu33_BFu7s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu32ll, aBFu33_BFu7s_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu7s_BFu33()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu33");
    static STRUCT_IF_C aBFu33_BFu7s_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu7s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu33_BFu7s_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu33, aBFu33_BFu7s_BFu33)
//============================================================================



static void Test_aBFu33_BFu7s_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu7c");
    static STRUCT_IF_C aBFu33_BFu7s_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu7c, aBFu33_BFu7s_BFu7c)
//============================================================================



static void Test_aBFu33_BFu7s_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu7i");
    static STRUCT_IF_C aBFu33_BFu7s_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu7i, aBFu33_BFu7s_BFu7i)
//============================================================================



static void Test_aBFu33_BFu7s_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu7s_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu7ll, aBFu33_BFu7s_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu7s_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu7s");
    static STRUCT_IF_C aBFu33_BFu7s_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu33_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu7s, aBFu33_BFu7s_BFu7s)
//============================================================================



static void Test_aBFu33_BFu7s_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu8c");
    static STRUCT_IF_C aBFu33_BFu7s_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7s_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu8c, aBFu33_BFu7s_BFu8c)
//============================================================================



static void Test_aBFu33_BFu7s_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu8i");
    static STRUCT_IF_C aBFu33_BFu7s_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7s_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu8i, aBFu33_BFu7s_BFu8i)
//============================================================================



static void Test_aBFu33_BFu7s_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu7s_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7s_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu8ll, aBFu33_BFu7s_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu7s_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu8s");
    static STRUCT_IF_C aBFu33_BFu7s_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu33_BFu7s_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu33_BFu7s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu8s, aBFu33_BFu7s_BFu8s)
//============================================================================



static void Test_aBFu33_BFu7s_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu9i");
    static STRUCT_IF_C aBFu33_BFu7s_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7s_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu9i, aBFu33_BFu7s_BFu9i)
//============================================================================



static void Test_aBFu33_BFu7s_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu7s_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7s_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu9ll, aBFu33_BFu7s_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu7s_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu7s_BFu9s");
    static STRUCT_IF_C aBFu33_BFu7s_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu33_BFu7s_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu33_BFu7s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_BFu9s, aBFu33_BFu7s_BFu9s)
//============================================================================



static void Test_aBFu33_BFu7s_C()
{
  {
    init_simple_test("aBFu33_BFu7s_C");
    static STRUCT_IF_C aBFu33_BFu7s_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_C");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_C");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_C");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_C, aBFu33_BFu7s_C)
//============================================================================



static void Test_aBFu33_BFu7s_D()
{
  {
    init_simple_test("aBFu33_BFu7s_D");
    static STRUCT_IF_C aBFu33_BFu7s_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_D");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_D");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_D");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_D, aBFu33_BFu7s_D)
//============================================================================



static void Test_aBFu33_BFu7s_F()
{
  {
    init_simple_test("aBFu33_BFu7s_F");
    static STRUCT_IF_C aBFu33_BFu7s_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_F");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_F");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_F");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_F, aBFu33_BFu7s_F)
//============================================================================



static void Test_aBFu33_BFu7s_I()
{
  {
    init_simple_test("aBFu33_BFu7s_I");
    static STRUCT_IF_C aBFu33_BFu7s_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_I");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_I");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_I");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_I, aBFu33_BFu7s_I)
//============================================================================



static void Test_aBFu33_BFu7s_Ip()
{
  {
    init_simple_test("aBFu33_BFu7s_Ip");
    static STRUCT_IF_C aBFu33_BFu7s_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu7s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_Ip");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_Ip");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_Ip");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_Ip, aBFu33_BFu7s_Ip)
//============================================================================



static void Test_aBFu33_BFu7s_L()
{
  {
    init_simple_test("aBFu33_BFu7s_L");
    static STRUCT_IF_C aBFu33_BFu7s_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_L");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_L");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_L");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_L, aBFu33_BFu7s_L)
//============================================================================



static void Test_aBFu33_BFu7s_S()
{
  {
    init_simple_test("aBFu33_BFu7s_S");
    static STRUCT_IF_C aBFu33_BFu7s_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_S");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_S");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_S");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_S, aBFu33_BFu7s_S)
//============================================================================



static void Test_aBFu33_BFu7s_Uc()
{
  {
    init_simple_test("aBFu33_BFu7s_Uc");
    static STRUCT_IF_C aBFu33_BFu7s_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu7s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_Uc");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_Uc");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_Uc");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_Uc, aBFu33_BFu7s_Uc)
//============================================================================



static void Test_aBFu33_BFu7s_Ui()
{
  {
    init_simple_test("aBFu33_BFu7s_Ui");
    static STRUCT_IF_C aBFu33_BFu7s_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu7s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_Ui");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_Ui");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_Ui");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_Ui, aBFu33_BFu7s_Ui)
//============================================================================



static void Test_aBFu33_BFu7s_Ul()
{
  {
    init_simple_test("aBFu33_BFu7s_Ul");
    static STRUCT_IF_C aBFu33_BFu7s_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_BFu7s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_Ul");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_Ul");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_Ul");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_Ul, aBFu33_BFu7s_Ul)
//============================================================================



static void Test_aBFu33_BFu7s_Us()
{
  {
    init_simple_test("aBFu33_BFu7s_Us");
    static STRUCT_IF_C aBFu33_BFu7s_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu7s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_Us");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_Us");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_Us");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_Us, aBFu33_BFu7s_Us)
//============================================================================



static void Test_aBFu33_BFu7s_Vp()
{
  {
    init_simple_test("aBFu33_BFu7s_Vp");
    static STRUCT_IF_C aBFu33_BFu7s_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_BFu7s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu7s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu7s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu7s_Vp");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu33_BFu7s_Vp");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu7s_Vp");
    check_field_offset(lv, v3, 5, "aBFu33_BFu7s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu7s_Vp, aBFu33_BFu7s_Vp)
//============================================================================



static void Test_aBFu33_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu8c");
    static STRUCT_IF_C aBFu33_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c, aBFu33_BFu8c)
//============================================================================



static void Test_aBFu33_BFu8c_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu15i");
    static STRUCT_IF_C aBFu33_BFu8c_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8c_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu15i, aBFu33_BFu8c_BFu15i)
//============================================================================



static void Test_aBFu33_BFu8c_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu8c_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8c_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu15ll, aBFu33_BFu8c_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu8c_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu15s");
    static STRUCT_IF_C aBFu33_BFu8c_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8c_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu15s, aBFu33_BFu8c_BFu15s)
//============================================================================



static void Test_aBFu33_BFu8c_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu16i");
    static STRUCT_IF_C aBFu33_BFu8c_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8c_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu16i, aBFu33_BFu8c_BFu16i)
//============================================================================



static void Test_aBFu33_BFu8c_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu8c_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8c_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu16ll, aBFu33_BFu8c_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu8c_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu16s");
    static STRUCT_IF_C aBFu33_BFu8c_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8c_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu16s, aBFu33_BFu8c_BFu16s)
//============================================================================



static void Test_aBFu33_BFu8c_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu17i");
    static STRUCT_IF_C aBFu33_BFu8c_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu33_BFu8c_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu8c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu17i, aBFu33_BFu8c_BFu17i)
//============================================================================



static void Test_aBFu33_BFu8c_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu8c_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu33_BFu8c_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu8c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu17ll, aBFu33_BFu8c_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu8c_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu1c");
    static STRUCT_IF_C aBFu33_BFu8c_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu1c");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu1c, aBFu33_BFu8c_BFu1c)
//============================================================================



static void Test_aBFu33_BFu8c_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu1i");
    static STRUCT_IF_C aBFu33_BFu8c_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu1i");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu1i, aBFu33_BFu8c_BFu1i)
//============================================================================



static void Test_aBFu33_BFu8c_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu8c_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu1ll");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu1ll, aBFu33_BFu8c_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu8c_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu1s");
    static STRUCT_IF_C aBFu33_BFu8c_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu1s");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu1s, aBFu33_BFu8c_BFu1s)
//============================================================================



static void Test_aBFu33_BFu8c_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu31i");
    static STRUCT_IF_C aBFu33_BFu8c_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu8c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "aBFu33_BFu8c_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu8c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu31i, aBFu33_BFu8c_BFu31i)
//============================================================================



static void Test_aBFu33_BFu8c_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu8c_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu8c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "aBFu33_BFu8c_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu8c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu31ll, aBFu33_BFu8c_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu8c_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu32i");
    static STRUCT_IF_C aBFu33_BFu8c_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu33_BFu8c_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu8c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu32i, aBFu33_BFu8c_BFu32i)
//============================================================================



static void Test_aBFu33_BFu8c_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu8c_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu33_BFu8c_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu8c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu32ll, aBFu33_BFu8c_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu8c_BFu33()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu33");
    static STRUCT_IF_C aBFu33_BFu8c_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, 1, "aBFu33_BFu8c_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu33, aBFu33_BFu8c_BFu33)
//============================================================================



static void Test_aBFu33_BFu8c_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu7c");
    static STRUCT_IF_C aBFu33_BFu8c_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8c_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu7c, aBFu33_BFu8c_BFu7c)
//============================================================================



static void Test_aBFu33_BFu8c_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu7i");
    static STRUCT_IF_C aBFu33_BFu8c_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8c_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu7i, aBFu33_BFu8c_BFu7i)
//============================================================================



static void Test_aBFu33_BFu8c_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu8c_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8c_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu7ll, aBFu33_BFu8c_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu8c_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu7s");
    static STRUCT_IF_C aBFu33_BFu8c_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8c_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu7s, aBFu33_BFu8c_BFu7s)
//============================================================================



static void Test_aBFu33_BFu8c_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu8c");
    static STRUCT_IF_C aBFu33_BFu8c_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8c_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu8c, aBFu33_BFu8c_BFu8c)
//============================================================================



static void Test_aBFu33_BFu8c_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu8i");
    static STRUCT_IF_C aBFu33_BFu8c_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8c_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu8i, aBFu33_BFu8c_BFu8i)
//============================================================================



static void Test_aBFu33_BFu8c_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu8c_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8c_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu8ll, aBFu33_BFu8c_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu8c_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu8s");
    static STRUCT_IF_C aBFu33_BFu8c_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8c_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu8s, aBFu33_BFu8c_BFu8s)
//============================================================================



static void Test_aBFu33_BFu8c_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu9i");
    static STRUCT_IF_C aBFu33_BFu8c_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8c_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu9i, aBFu33_BFu8c_BFu9i)
//============================================================================



static void Test_aBFu33_BFu8c_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu8c_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8c_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu9ll, aBFu33_BFu8c_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu8c_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu8c_BFu9s");
    static STRUCT_IF_C aBFu33_BFu8c_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8c_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_BFu9s, aBFu33_BFu8c_BFu9s)
//============================================================================



static void Test_aBFu33_BFu8c_C()
{
  {
    init_simple_test("aBFu33_BFu8c_C");
    static STRUCT_IF_C aBFu33_BFu8c_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_C");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_C");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_C");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_C, aBFu33_BFu8c_C)
//============================================================================



static void Test_aBFu33_BFu8c_D()
{
  {
    init_simple_test("aBFu33_BFu8c_D");
    static STRUCT_IF_C aBFu33_BFu8c_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_D");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_D");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_D");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_D, aBFu33_BFu8c_D)
//============================================================================



static void Test_aBFu33_BFu8c_F()
{
  {
    init_simple_test("aBFu33_BFu8c_F");
    static STRUCT_IF_C aBFu33_BFu8c_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_F");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_F");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_F");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_F, aBFu33_BFu8c_F)
//============================================================================



static void Test_aBFu33_BFu8c_I()
{
  {
    init_simple_test("aBFu33_BFu8c_I");
    static STRUCT_IF_C aBFu33_BFu8c_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_I");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_I");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_I");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_I, aBFu33_BFu8c_I)
//============================================================================



static void Test_aBFu33_BFu8c_Ip()
{
  {
    init_simple_test("aBFu33_BFu8c_Ip");
    static STRUCT_IF_C aBFu33_BFu8c_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu8c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_Ip");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_Ip");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_Ip");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_Ip, aBFu33_BFu8c_Ip)
//============================================================================



static void Test_aBFu33_BFu8c_L()
{
  {
    init_simple_test("aBFu33_BFu8c_L");
    static STRUCT_IF_C aBFu33_BFu8c_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_L");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_L");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_L");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_L, aBFu33_BFu8c_L)
//============================================================================



static void Test_aBFu33_BFu8c_S()
{
  {
    init_simple_test("aBFu33_BFu8c_S");
    static STRUCT_IF_C aBFu33_BFu8c_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_S");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_S");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_S");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_S, aBFu33_BFu8c_S)
//============================================================================



static void Test_aBFu33_BFu8c_Uc()
{
  {
    init_simple_test("aBFu33_BFu8c_Uc");
    static STRUCT_IF_C aBFu33_BFu8c_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_Uc");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_Uc");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_Uc");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_Uc, aBFu33_BFu8c_Uc)
//============================================================================



static void Test_aBFu33_BFu8c_Ui()
{
  {
    init_simple_test("aBFu33_BFu8c_Ui");
    static STRUCT_IF_C aBFu33_BFu8c_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_Ui");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_Ui");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_Ui");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_Ui, aBFu33_BFu8c_Ui)
//============================================================================



static void Test_aBFu33_BFu8c_Ul()
{
  {
    init_simple_test("aBFu33_BFu8c_Ul");
    static STRUCT_IF_C aBFu33_BFu8c_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_Ul");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_Ul");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_Ul");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_Ul, aBFu33_BFu8c_Ul)
//============================================================================



static void Test_aBFu33_BFu8c_Us()
{
  {
    init_simple_test("aBFu33_BFu8c_Us");
    static STRUCT_IF_C aBFu33_BFu8c_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_Us");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_Us");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_Us");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_Us, aBFu33_BFu8c_Us)
//============================================================================



static void Test_aBFu33_BFu8c_Vp()
{
  {
    init_simple_test("aBFu33_BFu8c_Vp");
    static STRUCT_IF_C aBFu33_BFu8c_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu8c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8c_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8c_Vp");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8c_Vp");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8c_Vp");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8c_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8c_Vp, aBFu33_BFu8c_Vp)
//============================================================================



static void Test_aBFu33_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu8i");
    static STRUCT_IF_C aBFu33_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i, aBFu33_BFu8i)
//============================================================================



static void Test_aBFu33_BFu8i_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu15i");
    static STRUCT_IF_C aBFu33_BFu8i_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8i_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu15i, aBFu33_BFu8i_BFu15i)
//============================================================================



static void Test_aBFu33_BFu8i_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu8i_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8i_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu15ll, aBFu33_BFu8i_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu8i_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu15s");
    static STRUCT_IF_C aBFu33_BFu8i_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8i_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu15s, aBFu33_BFu8i_BFu15s)
//============================================================================



static void Test_aBFu33_BFu8i_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu16i");
    static STRUCT_IF_C aBFu33_BFu8i_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8i_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu16i, aBFu33_BFu8i_BFu16i)
//============================================================================



static void Test_aBFu33_BFu8i_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu8i_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu16ll, aBFu33_BFu8i_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu8i_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu16s");
    static STRUCT_IF_C aBFu33_BFu8i_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8i_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu16s, aBFu33_BFu8i_BFu16s)
//============================================================================



static void Test_aBFu33_BFu8i_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu17i");
    static STRUCT_IF_C aBFu33_BFu8i_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu33_BFu8i_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu8i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu17i, aBFu33_BFu8i_BFu17i)
//============================================================================



static void Test_aBFu33_BFu8i_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu8i_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu33_BFu8i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu8i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu17ll, aBFu33_BFu8i_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu8i_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu1c");
    static STRUCT_IF_C aBFu33_BFu8i_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu1c");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu1c, aBFu33_BFu8i_BFu1c)
//============================================================================



static void Test_aBFu33_BFu8i_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu1i");
    static STRUCT_IF_C aBFu33_BFu8i_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu1i");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu1i, aBFu33_BFu8i_BFu1i)
//============================================================================



static void Test_aBFu33_BFu8i_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu8i_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu1ll");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu1ll, aBFu33_BFu8i_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu8i_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu1s");
    static STRUCT_IF_C aBFu33_BFu8i_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu1s");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu1s, aBFu33_BFu8i_BFu1s)
//============================================================================



static void Test_aBFu33_BFu8i_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu31i");
    static STRUCT_IF_C aBFu33_BFu8i_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu8i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "aBFu33_BFu8i_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu8i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu31i, aBFu33_BFu8i_BFu31i)
//============================================================================



static void Test_aBFu33_BFu8i_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu8i_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu8i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "aBFu33_BFu8i_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu8i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu31ll, aBFu33_BFu8i_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu8i_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu32i");
    static STRUCT_IF_C aBFu33_BFu8i_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu33_BFu8i_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu8i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu32i, aBFu33_BFu8i_BFu32i)
//============================================================================



static void Test_aBFu33_BFu8i_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu8i_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu33_BFu8i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu8i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu32ll, aBFu33_BFu8i_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu8i_BFu33()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu33");
    static STRUCT_IF_C aBFu33_BFu8i_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, 1, "aBFu33_BFu8i_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu33, aBFu33_BFu8i_BFu33)
//============================================================================



static void Test_aBFu33_BFu8i_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu7c");
    static STRUCT_IF_C aBFu33_BFu8i_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8i_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu7c, aBFu33_BFu8i_BFu7c)
//============================================================================



static void Test_aBFu33_BFu8i_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu7i");
    static STRUCT_IF_C aBFu33_BFu8i_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8i_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu7i, aBFu33_BFu8i_BFu7i)
//============================================================================



static void Test_aBFu33_BFu8i_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu8i_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8i_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu7ll, aBFu33_BFu8i_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu8i_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu7s");
    static STRUCT_IF_C aBFu33_BFu8i_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8i_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu7s, aBFu33_BFu8i_BFu7s)
//============================================================================



static void Test_aBFu33_BFu8i_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu8c");
    static STRUCT_IF_C aBFu33_BFu8i_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8i_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu8c, aBFu33_BFu8i_BFu8c)
//============================================================================



static void Test_aBFu33_BFu8i_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu8i");
    static STRUCT_IF_C aBFu33_BFu8i_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8i_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu8i, aBFu33_BFu8i_BFu8i)
//============================================================================



static void Test_aBFu33_BFu8i_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu8i_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8i_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu8ll, aBFu33_BFu8i_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu8i_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu8s");
    static STRUCT_IF_C aBFu33_BFu8i_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8i_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu8s, aBFu33_BFu8i_BFu8s)
//============================================================================



static void Test_aBFu33_BFu8i_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu9i");
    static STRUCT_IF_C aBFu33_BFu8i_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8i_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu9i, aBFu33_BFu8i_BFu9i)
//============================================================================



static void Test_aBFu33_BFu8i_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu8i_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8i_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu9ll, aBFu33_BFu8i_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu8i_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu8i_BFu9s");
    static STRUCT_IF_C aBFu33_BFu8i_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8i_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_BFu9s, aBFu33_BFu8i_BFu9s)
//============================================================================



static void Test_aBFu33_BFu8i_C()
{
  {
    init_simple_test("aBFu33_BFu8i_C");
    static STRUCT_IF_C aBFu33_BFu8i_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_C");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_C");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_C");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_C, aBFu33_BFu8i_C)
//============================================================================



static void Test_aBFu33_BFu8i_D()
{
  {
    init_simple_test("aBFu33_BFu8i_D");
    static STRUCT_IF_C aBFu33_BFu8i_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_D");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_D");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_D");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_D, aBFu33_BFu8i_D)
//============================================================================



static void Test_aBFu33_BFu8i_F()
{
  {
    init_simple_test("aBFu33_BFu8i_F");
    static STRUCT_IF_C aBFu33_BFu8i_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_F");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_F");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_F");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_F, aBFu33_BFu8i_F)
//============================================================================



static void Test_aBFu33_BFu8i_I()
{
  {
    init_simple_test("aBFu33_BFu8i_I");
    static STRUCT_IF_C aBFu33_BFu8i_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_I");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_I");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_I");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_I, aBFu33_BFu8i_I)
//============================================================================



static void Test_aBFu33_BFu8i_Ip()
{
  {
    init_simple_test("aBFu33_BFu8i_Ip");
    static STRUCT_IF_C aBFu33_BFu8i_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu8i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_Ip");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_Ip, aBFu33_BFu8i_Ip)
//============================================================================



static void Test_aBFu33_BFu8i_L()
{
  {
    init_simple_test("aBFu33_BFu8i_L");
    static STRUCT_IF_C aBFu33_BFu8i_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_L");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_L");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_L");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_L, aBFu33_BFu8i_L)
//============================================================================



static void Test_aBFu33_BFu8i_S()
{
  {
    init_simple_test("aBFu33_BFu8i_S");
    static STRUCT_IF_C aBFu33_BFu8i_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_S");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_S");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_S");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_S, aBFu33_BFu8i_S)
//============================================================================



static void Test_aBFu33_BFu8i_Uc()
{
  {
    init_simple_test("aBFu33_BFu8i_Uc");
    static STRUCT_IF_C aBFu33_BFu8i_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_Uc");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_Uc, aBFu33_BFu8i_Uc)
//============================================================================



static void Test_aBFu33_BFu8i_Ui()
{
  {
    init_simple_test("aBFu33_BFu8i_Ui");
    static STRUCT_IF_C aBFu33_BFu8i_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_Ui");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_Ui, aBFu33_BFu8i_Ui)
//============================================================================



static void Test_aBFu33_BFu8i_Ul()
{
  {
    init_simple_test("aBFu33_BFu8i_Ul");
    static STRUCT_IF_C aBFu33_BFu8i_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_Ul");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_Ul, aBFu33_BFu8i_Ul)
//============================================================================



static void Test_aBFu33_BFu8i_Us()
{
  {
    init_simple_test("aBFu33_BFu8i_Us");
    static STRUCT_IF_C aBFu33_BFu8i_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_Us");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_Us");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_Us");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_Us, aBFu33_BFu8i_Us)
//============================================================================



static void Test_aBFu33_BFu8i_Vp()
{
  {
    init_simple_test("aBFu33_BFu8i_Vp");
    static STRUCT_IF_C aBFu33_BFu8i_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu8i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8i_Vp");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8i_Vp, aBFu33_BFu8i_Vp)
//============================================================================



static void Test_aBFu33_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll, aBFu33_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu15i");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8ll_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu15i, aBFu33_BFu8ll_BFu15i)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu15ll, aBFu33_BFu8ll_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu15s");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8ll_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu15s, aBFu33_BFu8ll_BFu15s)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu16i");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu16i, aBFu33_BFu8ll_BFu16i)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu16ll, aBFu33_BFu8ll_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu16s");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu16s, aBFu33_BFu8ll_BFu16s)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu17i");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu33_BFu8ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu8ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu17i, aBFu33_BFu8ll_BFu17i)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu33_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu8ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu17ll, aBFu33_BFu8ll_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu1c");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu1c");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu1c, aBFu33_BFu8ll_BFu1c)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu1i");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu1i");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu1i, aBFu33_BFu8ll_BFu1i)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu1ll");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu1ll, aBFu33_BFu8ll_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu1s");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu1s");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu1s, aBFu33_BFu8ll_BFu1s)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu31i");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu8ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "aBFu33_BFu8ll_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu8ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu31i, aBFu33_BFu8ll_BFu31i)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu8ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "aBFu33_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu8ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu31ll, aBFu33_BFu8ll_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu32i");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu33_BFu8ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu8ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu32i, aBFu33_BFu8ll_BFu32i)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu33_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu8ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu32ll, aBFu33_BFu8ll_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu33()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu33");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, 1, "aBFu33_BFu8ll_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu33, aBFu33_BFu8ll_BFu33)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu7c");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8ll_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu7c, aBFu33_BFu8ll_BFu7c)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu7i");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8ll_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu7i, aBFu33_BFu8ll_BFu7i)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu7ll, aBFu33_BFu8ll_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu7s");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8ll_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu7s, aBFu33_BFu8ll_BFu7s)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu8c");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8ll_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu8c, aBFu33_BFu8ll_BFu8c)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu8i");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8ll_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu8i, aBFu33_BFu8ll_BFu8i)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu8ll, aBFu33_BFu8ll_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu8s");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8ll_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu8s, aBFu33_BFu8ll_BFu8s)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu9i");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8ll_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu9i, aBFu33_BFu8ll_BFu9i)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu9ll, aBFu33_BFu8ll_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu8ll_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu8ll_BFu9s");
    static STRUCT_IF_C aBFu33_BFu8ll_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8ll_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_BFu9s, aBFu33_BFu8ll_BFu9s)
//============================================================================



static void Test_aBFu33_BFu8ll_C()
{
  {
    init_simple_test("aBFu33_BFu8ll_C");
    static STRUCT_IF_C aBFu33_BFu8ll_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_C");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_C");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_C");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_C, aBFu33_BFu8ll_C)
//============================================================================



static void Test_aBFu33_BFu8ll_D()
{
  {
    init_simple_test("aBFu33_BFu8ll_D");
    static STRUCT_IF_C aBFu33_BFu8ll_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_D");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_D");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_D");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_D, aBFu33_BFu8ll_D)
//============================================================================



static void Test_aBFu33_BFu8ll_F()
{
  {
    init_simple_test("aBFu33_BFu8ll_F");
    static STRUCT_IF_C aBFu33_BFu8ll_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_F");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_F");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_F");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_F, aBFu33_BFu8ll_F)
//============================================================================



static void Test_aBFu33_BFu8ll_I()
{
  {
    init_simple_test("aBFu33_BFu8ll_I");
    static STRUCT_IF_C aBFu33_BFu8ll_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_I");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_I");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_I");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_I, aBFu33_BFu8ll_I)
//============================================================================



static void Test_aBFu33_BFu8ll_Ip()
{
  {
    init_simple_test("aBFu33_BFu8ll_Ip");
    static STRUCT_IF_C aBFu33_BFu8ll_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu8ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_Ip");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_Ip, aBFu33_BFu8ll_Ip)
//============================================================================



static void Test_aBFu33_BFu8ll_L()
{
  {
    init_simple_test("aBFu33_BFu8ll_L");
    static STRUCT_IF_C aBFu33_BFu8ll_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_L");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_L");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_L");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_L, aBFu33_BFu8ll_L)
//============================================================================



static void Test_aBFu33_BFu8ll_S()
{
  {
    init_simple_test("aBFu33_BFu8ll_S");
    static STRUCT_IF_C aBFu33_BFu8ll_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_S");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_S");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_S");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_S, aBFu33_BFu8ll_S)
//============================================================================



static void Test_aBFu33_BFu8ll_Uc()
{
  {
    init_simple_test("aBFu33_BFu8ll_Uc");
    static STRUCT_IF_C aBFu33_BFu8ll_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_Uc");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_Uc, aBFu33_BFu8ll_Uc)
//============================================================================



static void Test_aBFu33_BFu8ll_Ui()
{
  {
    init_simple_test("aBFu33_BFu8ll_Ui");
    static STRUCT_IF_C aBFu33_BFu8ll_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_Ui");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_Ui, aBFu33_BFu8ll_Ui)
//============================================================================



static void Test_aBFu33_BFu8ll_Ul()
{
  {
    init_simple_test("aBFu33_BFu8ll_Ul");
    static STRUCT_IF_C aBFu33_BFu8ll_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_Ul");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_Ul, aBFu33_BFu8ll_Ul)
//============================================================================



static void Test_aBFu33_BFu8ll_Us()
{
  {
    init_simple_test("aBFu33_BFu8ll_Us");
    static STRUCT_IF_C aBFu33_BFu8ll_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_Us");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_Us, aBFu33_BFu8ll_Us)
//============================================================================



static void Test_aBFu33_BFu8ll_Vp()
{
  {
    init_simple_test("aBFu33_BFu8ll_Vp");
    static STRUCT_IF_C aBFu33_BFu8ll_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu8ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8ll_Vp");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8ll_Vp, aBFu33_BFu8ll_Vp)
//============================================================================



static void Test_aBFu33_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu8s");
    static STRUCT_IF_C aBFu33_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s, aBFu33_BFu8s)
//============================================================================



static void Test_aBFu33_BFu8s_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu15i");
    static STRUCT_IF_C aBFu33_BFu8s_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8s_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu15i, aBFu33_BFu8s_BFu15i)
//============================================================================



static void Test_aBFu33_BFu8s_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu8s_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8s_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu15ll, aBFu33_BFu8s_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu8s_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu15s");
    static STRUCT_IF_C aBFu33_BFu8s_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "aBFu33_BFu8s_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "aBFu33_BFu8s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu15s, aBFu33_BFu8s_BFu15s)
//============================================================================



static void Test_aBFu33_BFu8s_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu16i");
    static STRUCT_IF_C aBFu33_BFu8s_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8s_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu16i, aBFu33_BFu8s_BFu16i)
//============================================================================



static void Test_aBFu33_BFu8s_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu8s_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8s_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu16ll, aBFu33_BFu8s_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu8s_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu16s");
    static STRUCT_IF_C aBFu33_BFu8s_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "aBFu33_BFu8s_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "aBFu33_BFu8s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu16s, aBFu33_BFu8s_BFu16s)
//============================================================================



static void Test_aBFu33_BFu8s_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu17i");
    static STRUCT_IF_C aBFu33_BFu8s_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu33_BFu8s_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu8s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu17i, aBFu33_BFu8s_BFu17i)
//============================================================================



static void Test_aBFu33_BFu8s_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu8s_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "aBFu33_BFu8s_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "aBFu33_BFu8s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu17ll, aBFu33_BFu8s_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu8s_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu1c");
    static STRUCT_IF_C aBFu33_BFu8s_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu1c");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu1c, aBFu33_BFu8s_BFu1c)
//============================================================================



static void Test_aBFu33_BFu8s_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu1i");
    static STRUCT_IF_C aBFu33_BFu8s_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu1i");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu1i, aBFu33_BFu8s_BFu1i)
//============================================================================



static void Test_aBFu33_BFu8s_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu8s_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu1ll");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu1ll, aBFu33_BFu8s_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu8s_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu1s");
    static STRUCT_IF_C aBFu33_BFu8s_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu1s");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "aBFu33_BFu8s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu1s, aBFu33_BFu8s_BFu1s)
//============================================================================



static void Test_aBFu33_BFu8s_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu31i");
    static STRUCT_IF_C aBFu33_BFu8s_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu8s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "aBFu33_BFu8s_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu8s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu31i, aBFu33_BFu8s_BFu31i)
//============================================================================



static void Test_aBFu33_BFu8s_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu8s_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_BFu8s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "aBFu33_BFu8s_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "aBFu33_BFu8s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu31ll, aBFu33_BFu8s_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu8s_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu32i");
    static STRUCT_IF_C aBFu33_BFu8s_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu33_BFu8s_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu8s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu32i, aBFu33_BFu8s_BFu32i)
//============================================================================



static void Test_aBFu33_BFu8s_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu8s_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "aBFu33_BFu8s_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "aBFu33_BFu8s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu32ll, aBFu33_BFu8s_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu8s_BFu33()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu33");
    static STRUCT_IF_C aBFu33_BFu8s_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, 1, "aBFu33_BFu8s_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu33, aBFu33_BFu8s_BFu33)
//============================================================================



static void Test_aBFu33_BFu8s_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu7c");
    static STRUCT_IF_C aBFu33_BFu8s_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8s_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu7c, aBFu33_BFu8s_BFu7c)
//============================================================================



static void Test_aBFu33_BFu8s_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu7i");
    static STRUCT_IF_C aBFu33_BFu8s_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8s_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu7i, aBFu33_BFu8s_BFu7i)
//============================================================================



static void Test_aBFu33_BFu8s_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu8s_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8s_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu7ll, aBFu33_BFu8s_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu8s_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu7s");
    static STRUCT_IF_C aBFu33_BFu8s_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu8s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "aBFu33_BFu8s_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "aBFu33_BFu8s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu7s, aBFu33_BFu8s_BFu7s)
//============================================================================



static void Test_aBFu33_BFu8s_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu8c");
    static STRUCT_IF_C aBFu33_BFu8s_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8s_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu8c, aBFu33_BFu8s_BFu8c)
//============================================================================



static void Test_aBFu33_BFu8s_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu8i");
    static STRUCT_IF_C aBFu33_BFu8s_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu8i, aBFu33_BFu8s_BFu8i)
//============================================================================



static void Test_aBFu33_BFu8s_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu8s_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu8ll, aBFu33_BFu8s_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu8s_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu8s");
    static STRUCT_IF_C aBFu33_BFu8s_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "aBFu33_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu8s, aBFu33_BFu8s_BFu8s)
//============================================================================



static void Test_aBFu33_BFu8s_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu9i");
    static STRUCT_IF_C aBFu33_BFu8s_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8s_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu9i, aBFu33_BFu8s_BFu9i)
//============================================================================



static void Test_aBFu33_BFu8s_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu8s_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8s_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu9ll, aBFu33_BFu8s_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu8s_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu8s_BFu9s");
    static STRUCT_IF_C aBFu33_BFu8s_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "aBFu33_BFu8s_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu8s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_BFu9s, aBFu33_BFu8s_BFu9s)
//============================================================================



static void Test_aBFu33_BFu8s_C()
{
  {
    init_simple_test("aBFu33_BFu8s_C");
    static STRUCT_IF_C aBFu33_BFu8s_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_C");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_C");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_C");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_C, aBFu33_BFu8s_C)
//============================================================================



static void Test_aBFu33_BFu8s_D()
{
  {
    init_simple_test("aBFu33_BFu8s_D");
    static STRUCT_IF_C aBFu33_BFu8s_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_D");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_D");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_D");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_D, aBFu33_BFu8s_D)
//============================================================================



static void Test_aBFu33_BFu8s_F()
{
  {
    init_simple_test("aBFu33_BFu8s_F");
    static STRUCT_IF_C aBFu33_BFu8s_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_F");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_F");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_F");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_F, aBFu33_BFu8s_F)
//============================================================================



static void Test_aBFu33_BFu8s_I()
{
  {
    init_simple_test("aBFu33_BFu8s_I");
    static STRUCT_IF_C aBFu33_BFu8s_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_I");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_I");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_I");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_I, aBFu33_BFu8s_I)
//============================================================================



static void Test_aBFu33_BFu8s_Ip()
{
  {
    init_simple_test("aBFu33_BFu8s_Ip");
    static STRUCT_IF_C aBFu33_BFu8s_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu8s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_Ip");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_Ip");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_Ip");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_Ip, aBFu33_BFu8s_Ip)
//============================================================================



static void Test_aBFu33_BFu8s_L()
{
  {
    init_simple_test("aBFu33_BFu8s_L");
    static STRUCT_IF_C aBFu33_BFu8s_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_L");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_L");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_L");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_L, aBFu33_BFu8s_L)
//============================================================================



static void Test_aBFu33_BFu8s_S()
{
  {
    init_simple_test("aBFu33_BFu8s_S");
    static STRUCT_IF_C aBFu33_BFu8s_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_S");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_S");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_S");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_S, aBFu33_BFu8s_S)
//============================================================================



static void Test_aBFu33_BFu8s_Uc()
{
  {
    init_simple_test("aBFu33_BFu8s_Uc");
    static STRUCT_IF_C aBFu33_BFu8s_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu8s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_Uc");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_Uc");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_Uc");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_Uc, aBFu33_BFu8s_Uc)
//============================================================================



static void Test_aBFu33_BFu8s_Ui()
{
  {
    init_simple_test("aBFu33_BFu8s_Ui");
    static STRUCT_IF_C aBFu33_BFu8s_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu8s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_Ui");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_Ui");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_Ui");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_Ui, aBFu33_BFu8s_Ui)
//============================================================================



static void Test_aBFu33_BFu8s_Ul()
{
  {
    init_simple_test("aBFu33_BFu8s_Ul");
    static STRUCT_IF_C aBFu33_BFu8s_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu8s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_Ul");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_Ul");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_Ul");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_Ul, aBFu33_BFu8s_Ul)
//============================================================================



static void Test_aBFu33_BFu8s_Us()
{
  {
    init_simple_test("aBFu33_BFu8s_Us");
    static STRUCT_IF_C aBFu33_BFu8s_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu8s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_Us");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_Us");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_Us");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_Us, aBFu33_BFu8s_Us)
//============================================================================



static void Test_aBFu33_BFu8s_Vp()
{
  {
    init_simple_test("aBFu33_BFu8s_Vp");
    static STRUCT_IF_C aBFu33_BFu8s_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu8s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu8s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu8s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu8s_Vp");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu33_BFu8s_Vp");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu33_BFu8s_Vp");
    check_field_offset(lv, v3, 6, "aBFu33_BFu8s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu8s_Vp, aBFu33_BFu8s_Vp)
//============================================================================



static void Test_aBFu33_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu9i");
    static STRUCT_IF_C aBFu33_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i, aBFu33_BFu9i)
//============================================================================



static void Test_aBFu33_BFu9i_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu15i");
    static STRUCT_IF_C aBFu33_BFu9i_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu15i");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "aBFu33_BFu9i_BFu15i");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu9i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu15i, aBFu33_BFu9i_BFu15i)
//============================================================================



static void Test_aBFu33_BFu9i_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu9i_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu15ll");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "aBFu33_BFu9i_BFu15ll");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu9i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu15ll, aBFu33_BFu9i_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu9i_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu15s");
    static STRUCT_IF_C aBFu33_BFu9i_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu15s");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "aBFu33_BFu9i_BFu15s");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu9i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu15s, aBFu33_BFu9i_BFu15s)
//============================================================================



static void Test_aBFu33_BFu9i_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu16i");
    static STRUCT_IF_C aBFu33_BFu9i_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu16i");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "aBFu33_BFu9i_BFu16i");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu9i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu16i, aBFu33_BFu9i_BFu16i)
//============================================================================



static void Test_aBFu33_BFu9i_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu9i_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "aBFu33_BFu9i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu9i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu16ll, aBFu33_BFu9i_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu9i_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu16s");
    static STRUCT_IF_C aBFu33_BFu9i_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu16s");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "aBFu33_BFu9i_BFu16s");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu9i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu16s, aBFu33_BFu9i_BFu16s)
//============================================================================



static void Test_aBFu33_BFu9i_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu17i");
    static STRUCT_IF_C aBFu33_BFu9i_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 5, 2, 17, 1, "aBFu33_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 5, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu9i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu17i, aBFu33_BFu9i_BFu17i)
//============================================================================



static void Test_aBFu33_BFu9i_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu9i_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 2, 17, 1, "aBFu33_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu9i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu17ll, aBFu33_BFu9i_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu9i_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu1c");
    static STRUCT_IF_C aBFu33_BFu9i_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu1c");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu1c, aBFu33_BFu9i_BFu1c)
//============================================================================



static void Test_aBFu33_BFu9i_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu1i");
    static STRUCT_IF_C aBFu33_BFu9i_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu1i");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu1i, aBFu33_BFu9i_BFu1i)
//============================================================================



static void Test_aBFu33_BFu9i_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu9i_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu1ll");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu1ll, aBFu33_BFu9i_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu9i_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu1s");
    static STRUCT_IF_C aBFu33_BFu9i_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu1s");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu1s, aBFu33_BFu9i_BFu1s)
//============================================================================



static void Test_aBFu33_BFu9i_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu31i");
    static STRUCT_IF_C aBFu33_BFu9i_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu31i");
    set_bf_and_test(lv, v3, 5, 2, 31, 1, "aBFu33_BFu9i_BFu31i");
    set_bf_and_test(lv, v3, 5, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu9i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu31i, aBFu33_BFu9i_BFu31i)
//============================================================================



static void Test_aBFu33_BFu9i_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu9i_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu31ll");
    set_bf_and_test(lv, v3, 5, 2, 31, 1, "aBFu33_BFu9i_BFu31ll");
    set_bf_and_test(lv, v3, 5, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu9i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu31ll, aBFu33_BFu9i_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu9i_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu32i");
    static STRUCT_IF_C aBFu33_BFu9i_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 5, 2, 32, 1, "aBFu33_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 5, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu9i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu32i, aBFu33_BFu9i_BFu32i)
//============================================================================



static void Test_aBFu33_BFu9i_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu9i_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 2, 32, 1, "aBFu33_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu9i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu32ll, aBFu33_BFu9i_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu9i_BFu33()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu33");
    static STRUCT_IF_C aBFu33_BFu9i_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 5, 2, 33, 1, "aBFu33_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 5, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu33, aBFu33_BFu9i_BFu33)
//============================================================================



static void Test_aBFu33_BFu9i_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu7c");
    static STRUCT_IF_C aBFu33_BFu9i_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu7c");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9i_BFu7c");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu7c, aBFu33_BFu9i_BFu7c)
//============================================================================



static void Test_aBFu33_BFu9i_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu7i");
    static STRUCT_IF_C aBFu33_BFu9i_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu7i");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9i_BFu7i");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu7i, aBFu33_BFu9i_BFu7i)
//============================================================================



static void Test_aBFu33_BFu9i_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu9i_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu7ll");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9i_BFu7ll");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu7ll, aBFu33_BFu9i_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu9i_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu7s");
    static STRUCT_IF_C aBFu33_BFu9i_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu7s");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9i_BFu7s");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu7s, aBFu33_BFu9i_BFu7s)
//============================================================================



static void Test_aBFu33_BFu9i_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu8c");
    static STRUCT_IF_C aBFu33_BFu9i_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu8c");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9i_BFu8c");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu8c, aBFu33_BFu9i_BFu8c)
//============================================================================



static void Test_aBFu33_BFu9i_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu8i");
    static STRUCT_IF_C aBFu33_BFu9i_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu8i");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9i_BFu8i");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu8i, aBFu33_BFu9i_BFu8i)
//============================================================================



static void Test_aBFu33_BFu9i_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu9i_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu8ll");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9i_BFu8ll");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu8ll, aBFu33_BFu9i_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu9i_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu8s");
    static STRUCT_IF_C aBFu33_BFu9i_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu8s");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9i_BFu8s");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu8s, aBFu33_BFu9i_BFu8s)
//============================================================================



static void Test_aBFu33_BFu9i_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu9i");
    static STRUCT_IF_C aBFu33_BFu9i_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "aBFu33_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu9i, aBFu33_BFu9i_BFu9i)
//============================================================================



static void Test_aBFu33_BFu9i_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "aBFu33_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu9ll, aBFu33_BFu9i_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu9i_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu9i_BFu9s");
    static STRUCT_IF_C aBFu33_BFu9i_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "aBFu33_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_BFu9s, aBFu33_BFu9i_BFu9s)
//============================================================================



static void Test_aBFu33_BFu9i_C()
{
  {
    init_simple_test("aBFu33_BFu9i_C");
    static STRUCT_IF_C aBFu33_BFu9i_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_C");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_C");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_C");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_C, aBFu33_BFu9i_C)
//============================================================================



static void Test_aBFu33_BFu9i_D()
{
  {
    init_simple_test("aBFu33_BFu9i_D");
    static STRUCT_IF_C aBFu33_BFu9i_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu9i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_D");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_D");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_D");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_D, aBFu33_BFu9i_D)
//============================================================================



static void Test_aBFu33_BFu9i_F()
{
  {
    init_simple_test("aBFu33_BFu9i_F");
    static STRUCT_IF_C aBFu33_BFu9i_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_F");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_F");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_F");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_F, aBFu33_BFu9i_F)
//============================================================================



static void Test_aBFu33_BFu9i_I()
{
  {
    init_simple_test("aBFu33_BFu9i_I");
    static STRUCT_IF_C aBFu33_BFu9i_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_I");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_I");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_I");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_I, aBFu33_BFu9i_I)
//============================================================================



static void Test_aBFu33_BFu9i_Ip()
{
  {
    init_simple_test("aBFu33_BFu9i_Ip");
    static STRUCT_IF_C aBFu33_BFu9i_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu9i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_Ip");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_Ip");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_Ip, aBFu33_BFu9i_Ip)
//============================================================================



static void Test_aBFu33_BFu9i_L()
{
  {
    init_simple_test("aBFu33_BFu9i_L");
    static STRUCT_IF_C aBFu33_BFu9i_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu9i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_L");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_L");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_L");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_L, aBFu33_BFu9i_L)
//============================================================================



static void Test_aBFu33_BFu9i_S()
{
  {
    init_simple_test("aBFu33_BFu9i_S");
    static STRUCT_IF_C aBFu33_BFu9i_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_S");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_S");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_S");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_S, aBFu33_BFu9i_S)
//============================================================================



static void Test_aBFu33_BFu9i_Uc()
{
  {
    init_simple_test("aBFu33_BFu9i_Uc");
    static STRUCT_IF_C aBFu33_BFu9i_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_Uc");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_Uc");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_Uc, aBFu33_BFu9i_Uc)
//============================================================================



static void Test_aBFu33_BFu9i_Ui()
{
  {
    init_simple_test("aBFu33_BFu9i_Ui");
    static STRUCT_IF_C aBFu33_BFu9i_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_Ui");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_Ui");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_Ui, aBFu33_BFu9i_Ui)
//============================================================================



static void Test_aBFu33_BFu9i_Ul()
{
  {
    init_simple_test("aBFu33_BFu9i_Ul");
    static STRUCT_IF_C aBFu33_BFu9i_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu9i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_Ul");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_Ul");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_Ul, aBFu33_BFu9i_Ul)
//============================================================================



static void Test_aBFu33_BFu9i_Us()
{
  {
    init_simple_test("aBFu33_BFu9i_Us");
    static STRUCT_IF_C aBFu33_BFu9i_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_Us");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_Us");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_Us");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_Us, aBFu33_BFu9i_Us)
//============================================================================



static void Test_aBFu33_BFu9i_Vp()
{
  {
    init_simple_test("aBFu33_BFu9i_Vp");
    static STRUCT_IF_C aBFu33_BFu9i_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu9i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9i_Vp");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9i_Vp");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9i_Vp, aBFu33_BFu9i_Vp)
//============================================================================



static void Test_aBFu33_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll, aBFu33_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu15i");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu15i");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "aBFu33_BFu9ll_BFu15i");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu9ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu15i, aBFu33_BFu9ll_BFu15i)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "aBFu33_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu9ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu15ll, aBFu33_BFu9ll_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu15s");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu15s");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "aBFu33_BFu9ll_BFu15s");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu9ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu15s, aBFu33_BFu9ll_BFu15s)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu16i");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "aBFu33_BFu9ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu9ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu16i, aBFu33_BFu9ll_BFu16i)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "aBFu33_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu9ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu16ll, aBFu33_BFu9ll_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu16s");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "aBFu33_BFu9ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu9ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu16s, aBFu33_BFu9ll_BFu16s)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu17i");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 2, 17, 1, "aBFu33_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu9ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu17i, aBFu33_BFu9ll_BFu17i)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 2, 17, 1, "aBFu33_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu9ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu17ll, aBFu33_BFu9ll_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu1c");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu1c");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu1c, aBFu33_BFu9ll_BFu1c)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu1i");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu1i");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu1i, aBFu33_BFu9ll_BFu1i)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu1ll, aBFu33_BFu9ll_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu1s");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu1s");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu1s, aBFu33_BFu9ll_BFu1s)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu31i");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu31i");
    set_bf_and_test(lv, v3, 5, 2, 31, 1, "aBFu33_BFu9ll_BFu31i");
    set_bf_and_test(lv, v3, 5, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu9ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu31i, aBFu33_BFu9ll_BFu31i)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v3, 5, 2, 31, 1, "aBFu33_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v3, 5, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu9ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu31ll, aBFu33_BFu9ll_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu32i");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 2, 32, 1, "aBFu33_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu9ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu32i, aBFu33_BFu9ll_BFu32i)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 2, 32, 1, "aBFu33_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu9ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu32ll, aBFu33_BFu9ll_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu33()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu33");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 5, 2, 33, 1, "aBFu33_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 5, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu33, aBFu33_BFu9ll_BFu33)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu7c");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu7c");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9ll_BFu7c");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu7c, aBFu33_BFu9ll_BFu7c)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu7i");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu7i");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9ll_BFu7i");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu7i, aBFu33_BFu9ll_BFu7i)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu7ll, aBFu33_BFu9ll_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu7s");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu7s");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9ll_BFu7s");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu7s, aBFu33_BFu9ll_BFu7s)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu8c");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu8c");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9ll_BFu8c");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu8c, aBFu33_BFu9ll_BFu8c)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu8i");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu8i");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9ll_BFu8i");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu8i, aBFu33_BFu9ll_BFu8i)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu8ll, aBFu33_BFu9ll_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu8s");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu8s");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9ll_BFu8s");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu8s, aBFu33_BFu9ll_BFu8s)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu9i");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "aBFu33_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu9i, aBFu33_BFu9ll_BFu9i)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "aBFu33_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu9ll, aBFu33_BFu9ll_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu9ll_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu9ll_BFu9s");
    static STRUCT_IF_C aBFu33_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "aBFu33_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_BFu9s, aBFu33_BFu9ll_BFu9s)
//============================================================================



static void Test_aBFu33_BFu9ll_C()
{
  {
    init_simple_test("aBFu33_BFu9ll_C");
    static STRUCT_IF_C aBFu33_BFu9ll_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_C");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_C");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_C");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_C, aBFu33_BFu9ll_C)
//============================================================================



static void Test_aBFu33_BFu9ll_D()
{
  {
    init_simple_test("aBFu33_BFu9ll_D");
    static STRUCT_IF_C aBFu33_BFu9ll_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu9ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_D");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_D");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_D");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_D, aBFu33_BFu9ll_D)
//============================================================================



static void Test_aBFu33_BFu9ll_F()
{
  {
    init_simple_test("aBFu33_BFu9ll_F");
    static STRUCT_IF_C aBFu33_BFu9ll_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_F");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_F");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_F");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_F, aBFu33_BFu9ll_F)
//============================================================================



static void Test_aBFu33_BFu9ll_I()
{
  {
    init_simple_test("aBFu33_BFu9ll_I");
    static STRUCT_IF_C aBFu33_BFu9ll_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_I");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_I");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_I");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_I, aBFu33_BFu9ll_I)
//============================================================================



static void Test_aBFu33_BFu9ll_Ip()
{
  {
    init_simple_test("aBFu33_BFu9ll_Ip");
    static STRUCT_IF_C aBFu33_BFu9ll_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu9ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_Ip");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_Ip, aBFu33_BFu9ll_Ip)
//============================================================================



static void Test_aBFu33_BFu9ll_L()
{
  {
    init_simple_test("aBFu33_BFu9ll_L");
    static STRUCT_IF_C aBFu33_BFu9ll_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu9ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_L");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_L");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_L");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_L, aBFu33_BFu9ll_L)
//============================================================================



static void Test_aBFu33_BFu9ll_S()
{
  {
    init_simple_test("aBFu33_BFu9ll_S");
    static STRUCT_IF_C aBFu33_BFu9ll_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_S");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_S");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_S");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_S, aBFu33_BFu9ll_S)
//============================================================================



static void Test_aBFu33_BFu9ll_Uc()
{
  {
    init_simple_test("aBFu33_BFu9ll_Uc");
    static STRUCT_IF_C aBFu33_BFu9ll_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_Uc");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_Uc");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_Uc, aBFu33_BFu9ll_Uc)
//============================================================================



static void Test_aBFu33_BFu9ll_Ui()
{
  {
    init_simple_test("aBFu33_BFu9ll_Ui");
    static STRUCT_IF_C aBFu33_BFu9ll_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_Ui");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_Ui");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_Ui, aBFu33_BFu9ll_Ui)
//============================================================================



static void Test_aBFu33_BFu9ll_Ul()
{
  {
    init_simple_test("aBFu33_BFu9ll_Ul");
    static STRUCT_IF_C aBFu33_BFu9ll_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu9ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_Ul");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_Ul");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_Ul, aBFu33_BFu9ll_Ul)
//============================================================================



static void Test_aBFu33_BFu9ll_Us()
{
  {
    init_simple_test("aBFu33_BFu9ll_Us");
    static STRUCT_IF_C aBFu33_BFu9ll_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_Us");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_Us");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_Us, aBFu33_BFu9ll_Us)
//============================================================================



static void Test_aBFu33_BFu9ll_Vp()
{
  {
    init_simple_test("aBFu33_BFu9ll_Vp");
    static STRUCT_IF_C aBFu33_BFu9ll_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu9ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9ll_Vp");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9ll_Vp, aBFu33_BFu9ll_Vp)
//============================================================================



static void Test_aBFu33_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu9s");
    static STRUCT_IF_C aBFu33_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s, aBFu33_BFu9s)
//============================================================================



static void Test_aBFu33_BFu9s_BFu15i()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu15i");
    static STRUCT_IF_C aBFu33_BFu9s_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu15i");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "aBFu33_BFu9s_BFu15i");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu9s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu15i, aBFu33_BFu9s_BFu15i)
//============================================================================



static void Test_aBFu33_BFu9s_BFu15ll()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu15ll");
    static STRUCT_IF_C aBFu33_BFu9s_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu15ll");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "aBFu33_BFu9s_BFu15ll");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu9s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu15ll, aBFu33_BFu9s_BFu15ll)
//============================================================================



static void Test_aBFu33_BFu9s_BFu15s()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu15s");
    static STRUCT_IF_C aBFu33_BFu9s_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu15s");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "aBFu33_BFu9s_BFu15s");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "aBFu33_BFu9s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu15s, aBFu33_BFu9s_BFu15s)
//============================================================================



static void Test_aBFu33_BFu9s_BFu16i()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu16i");
    static STRUCT_IF_C aBFu33_BFu9s_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu16i");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "aBFu33_BFu9s_BFu16i");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu9s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu16i, aBFu33_BFu9s_BFu16i)
//============================================================================



static void Test_aBFu33_BFu9s_BFu16ll()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu16ll");
    static STRUCT_IF_C aBFu33_BFu9s_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu16ll");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "aBFu33_BFu9s_BFu16ll");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu9s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu16ll, aBFu33_BFu9s_BFu16ll)
//============================================================================



static void Test_aBFu33_BFu9s_BFu16s()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu16s");
    static STRUCT_IF_C aBFu33_BFu9s_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu16s");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "aBFu33_BFu9s_BFu16s");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "aBFu33_BFu9s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu16s, aBFu33_BFu9s_BFu16s)
//============================================================================



static void Test_aBFu33_BFu9s_BFu17i()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu17i");
    static STRUCT_IF_C aBFu33_BFu9s_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 5, 2, 17, 1, "aBFu33_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 5, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu9s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu17i, aBFu33_BFu9s_BFu17i)
//============================================================================



static void Test_aBFu33_BFu9s_BFu17ll()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu17ll");
    static STRUCT_IF_C aBFu33_BFu9s_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 5, 2, 17, 1, "aBFu33_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 5, 2, 17, hide_ull(1LL<<16), "aBFu33_BFu9s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu17ll, aBFu33_BFu9s_BFu17ll)
//============================================================================



static void Test_aBFu33_BFu9s_BFu1c()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu1c");
    static STRUCT_IF_C aBFu33_BFu9s_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu1c");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu1c, aBFu33_BFu9s_BFu1c)
//============================================================================



static void Test_aBFu33_BFu9s_BFu1i()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu1i");
    static STRUCT_IF_C aBFu33_BFu9s_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu1i");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu1i, aBFu33_BFu9s_BFu1i)
//============================================================================



static void Test_aBFu33_BFu9s_BFu1ll()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu1ll");
    static STRUCT_IF_C aBFu33_BFu9s_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu1ll");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu1ll, aBFu33_BFu9s_BFu1ll)
//============================================================================



static void Test_aBFu33_BFu9s_BFu1s()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu1s");
    static STRUCT_IF_C aBFu33_BFu9s_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_BFu9s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu1s");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "aBFu33_BFu9s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu1s, aBFu33_BFu9s_BFu1s)
//============================================================================



static void Test_aBFu33_BFu9s_BFu31i()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu31i");
    static STRUCT_IF_C aBFu33_BFu9s_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu31i");
    set_bf_and_test(lv, v3, 5, 2, 31, 1, "aBFu33_BFu9s_BFu31i");
    set_bf_and_test(lv, v3, 5, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu9s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu31i, aBFu33_BFu9s_BFu31i)
//============================================================================



static void Test_aBFu33_BFu9s_BFu31ll()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu31ll");
    static STRUCT_IF_C aBFu33_BFu9s_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu31ll");
    set_bf_and_test(lv, v3, 5, 2, 31, 1, "aBFu33_BFu9s_BFu31ll");
    set_bf_and_test(lv, v3, 5, 2, 31, hide_ull(1LL<<30), "aBFu33_BFu9s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu31ll, aBFu33_BFu9s_BFu31ll)
//============================================================================



static void Test_aBFu33_BFu9s_BFu32i()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu32i");
    static STRUCT_IF_C aBFu33_BFu9s_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 5, 2, 32, 1, "aBFu33_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 5, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu9s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu32i, aBFu33_BFu9s_BFu32i)
//============================================================================



static void Test_aBFu33_BFu9s_BFu32ll()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu32ll");
    static STRUCT_IF_C aBFu33_BFu9s_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 5, 2, 32, 1, "aBFu33_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 5, 2, 32, hide_ull(1LL<<31), "aBFu33_BFu9s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu32ll, aBFu33_BFu9s_BFu32ll)
//============================================================================



static void Test_aBFu33_BFu9s_BFu33()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu33");
    static STRUCT_IF_C aBFu33_BFu9s_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 5, 2, 33, 1, "aBFu33_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 5, 2, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu33, aBFu33_BFu9s_BFu33)
//============================================================================



static void Test_aBFu33_BFu9s_BFu7c()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu7c");
    static STRUCT_IF_C aBFu33_BFu9s_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu7c");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9s_BFu7c");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu7c, aBFu33_BFu9s_BFu7c)
//============================================================================



static void Test_aBFu33_BFu9s_BFu7i()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu7i");
    static STRUCT_IF_C aBFu33_BFu9s_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu7i");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9s_BFu7i");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu7i, aBFu33_BFu9s_BFu7i)
//============================================================================



static void Test_aBFu33_BFu9s_BFu7ll()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu7ll");
    static STRUCT_IF_C aBFu33_BFu9s_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu7ll");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9s_BFu7ll");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu7ll, aBFu33_BFu9s_BFu7ll)
//============================================================================



static void Test_aBFu33_BFu9s_BFu7s()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu7s");
    static STRUCT_IF_C aBFu33_BFu9s_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu7s");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "aBFu33_BFu9s_BFu7s");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "aBFu33_BFu9s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu7s, aBFu33_BFu9s_BFu7s)
//============================================================================



static void Test_aBFu33_BFu9s_BFu8c()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu8c");
    static STRUCT_IF_C aBFu33_BFu9s_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu8c");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9s_BFu8c");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu8c, aBFu33_BFu9s_BFu8c)
//============================================================================



static void Test_aBFu33_BFu9s_BFu8i()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu8i");
    static STRUCT_IF_C aBFu33_BFu9s_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu8i");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9s_BFu8i");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu8i, aBFu33_BFu9s_BFu8i)
//============================================================================



static void Test_aBFu33_BFu9s_BFu8ll()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu8ll");
    static STRUCT_IF_C aBFu33_BFu9s_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu8ll");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9s_BFu8ll");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu8ll, aBFu33_BFu9s_BFu8ll)
//============================================================================



static void Test_aBFu33_BFu9s_BFu8s()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu8s");
    static STRUCT_IF_C aBFu33_BFu9s_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu8s");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "aBFu33_BFu9s_BFu8s");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "aBFu33_BFu9s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu8s, aBFu33_BFu9s_BFu8s)
//============================================================================



static void Test_aBFu33_BFu9s_BFu9i()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu9i");
    static STRUCT_IF_C aBFu33_BFu9s_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "aBFu33_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu9i, aBFu33_BFu9s_BFu9i)
//============================================================================



static void Test_aBFu33_BFu9s_BFu9ll()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu9ll");
    static STRUCT_IF_C aBFu33_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "aBFu33_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu9ll, aBFu33_BFu9s_BFu9ll)
//============================================================================



static void Test_aBFu33_BFu9s_BFu9s()
{
  {
    init_simple_test("aBFu33_BFu9s_BFu9s");
    static STRUCT_IF_C aBFu33_BFu9s_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "aBFu33_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_BFu9s, aBFu33_BFu9s_BFu9s)
//============================================================================



static void Test_aBFu33_BFu9s_C()
{
  {
    init_simple_test("aBFu33_BFu9s_C");
    static STRUCT_IF_C aBFu33_BFu9s_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_C");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_C");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_C");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_C, aBFu33_BFu9s_C)
//============================================================================



static void Test_aBFu33_BFu9s_D()
{
  {
    init_simple_test("aBFu33_BFu9s_D");
    static STRUCT_IF_C aBFu33_BFu9s_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu9s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_D");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_D");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_D");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_D, aBFu33_BFu9s_D)
//============================================================================



static void Test_aBFu33_BFu9s_F()
{
  {
    init_simple_test("aBFu33_BFu9s_F");
    static STRUCT_IF_C aBFu33_BFu9s_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_F");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_F");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_F");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_F, aBFu33_BFu9s_F)
//============================================================================



static void Test_aBFu33_BFu9s_I()
{
  {
    init_simple_test("aBFu33_BFu9s_I");
    static STRUCT_IF_C aBFu33_BFu9s_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_I");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_I");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_I");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_I, aBFu33_BFu9s_I)
//============================================================================



static void Test_aBFu33_BFu9s_Ip()
{
  {
    init_simple_test("aBFu33_BFu9s_Ip");
    static STRUCT_IF_C aBFu33_BFu9s_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu9s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_Ip");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_Ip");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_Ip");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_Ip, aBFu33_BFu9s_Ip)
//============================================================================



static void Test_aBFu33_BFu9s_L()
{
  {
    init_simple_test("aBFu33_BFu9s_L");
    static STRUCT_IF_C aBFu33_BFu9s_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu9s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_L");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_L");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_L");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_L, aBFu33_BFu9s_L)
//============================================================================



static void Test_aBFu33_BFu9s_S()
{
  {
    init_simple_test("aBFu33_BFu9s_S");
    static STRUCT_IF_C aBFu33_BFu9s_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_S");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_S");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_S");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_S, aBFu33_BFu9s_S)
//============================================================================



static void Test_aBFu33_BFu9s_Uc()
{
  {
    init_simple_test("aBFu33_BFu9s_Uc");
    static STRUCT_IF_C aBFu33_BFu9s_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_BFu9s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_Uc");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_Uc");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_Uc");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_Uc, aBFu33_BFu9s_Uc)
//============================================================================



static void Test_aBFu33_BFu9s_Ui()
{
  {
    init_simple_test("aBFu33_BFu9s_Ui");
    static STRUCT_IF_C aBFu33_BFu9s_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_BFu9s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_Ui");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_Ui");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_Ui");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_Ui, aBFu33_BFu9s_Ui)
//============================================================================



static void Test_aBFu33_BFu9s_Ul()
{
  {
    init_simple_test("aBFu33_BFu9s_Ul");
    static STRUCT_IF_C aBFu33_BFu9s_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_BFu9s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_Ul");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_Ul");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_Ul");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_Ul, aBFu33_BFu9s_Ul)
//============================================================================



static void Test_aBFu33_BFu9s_Us()
{
  {
    init_simple_test("aBFu33_BFu9s_Us");
    static STRUCT_IF_C aBFu33_BFu9s_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_BFu9s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_Us");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_Us");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_Us");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_Us, aBFu33_BFu9s_Us)
//============================================================================



static void Test_aBFu33_BFu9s_Vp()
{
  {
    init_simple_test("aBFu33_BFu9s_Vp");
    static STRUCT_IF_C aBFu33_BFu9s_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_BFu9s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_BFu9s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_BFu9s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_BFu9s_Vp");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu33_BFu9s_Vp");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu33_BFu9s_Vp");
    check_field_offset(lv, v3, 6, "aBFu33_BFu9s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_BFu9s_Vp, aBFu33_BFu9s_Vp)
//============================================================================



static void Test_aBFu33_C()
{
  {
    init_simple_test("aBFu33_C");
    static STRUCT_IF_C aBFu33_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C");
    check_field_offset(lv, v2, 5, "aBFu33_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C, aBFu33_C)
//============================================================================



static void Test_aBFu33_C_BFu15i()
{
  {
    init_simple_test("aBFu33_C_BFu15i");
    static STRUCT_IF_C aBFu33_C_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_C_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu15i.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_C_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_C_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu15i, aBFu33_C_BFu15i)
//============================================================================



static void Test_aBFu33_C_BFu15ll()
{
  {
    init_simple_test("aBFu33_C_BFu15ll");
    static STRUCT_IF_C aBFu33_C_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_C_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu15ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_C_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_C_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu15ll, aBFu33_C_BFu15ll)
//============================================================================



static void Test_aBFu33_C_BFu15s()
{
  {
    init_simple_test("aBFu33_C_BFu15s");
    static STRUCT_IF_C aBFu33_C_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_C_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu15s.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_C_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_C_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu15s, aBFu33_C_BFu15s)
//============================================================================



static void Test_aBFu33_C_BFu16i()
{
  {
    init_simple_test("aBFu33_C_BFu16i");
    static STRUCT_IF_C aBFu33_C_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_C_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu16i.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_C_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_C_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu16i, aBFu33_C_BFu16i)
//============================================================================



static void Test_aBFu33_C_BFu16ll()
{
  {
    init_simple_test("aBFu33_C_BFu16ll");
    static STRUCT_IF_C aBFu33_C_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_C_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu16ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_C_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_C_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu16ll, aBFu33_C_BFu16ll)
//============================================================================



static void Test_aBFu33_C_BFu16s()
{
  {
    init_simple_test("aBFu33_C_BFu16s");
    static STRUCT_IF_C aBFu33_C_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_C_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu16s.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_C_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_C_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu16s, aBFu33_C_BFu16s)
//============================================================================



static void Test_aBFu33_C_BFu17i()
{
  {
    init_simple_test("aBFu33_C_BFu17i");
    static STRUCT_IF_C aBFu33_C_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_C_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu17i.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu33_C_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu33_C_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu17i, aBFu33_C_BFu17i)
//============================================================================



static void Test_aBFu33_C_BFu17ll()
{
  {
    init_simple_test("aBFu33_C_BFu17ll");
    static STRUCT_IF_C aBFu33_C_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_C_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu17ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu33_C_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu33_C_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu17ll, aBFu33_C_BFu17ll)
//============================================================================



static void Test_aBFu33_C_BFu1c()
{
  {
    init_simple_test("aBFu33_C_BFu1c");
    static STRUCT_IF_C aBFu33_C_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu1c.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_C_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu1c, aBFu33_C_BFu1c)
//============================================================================



static void Test_aBFu33_C_BFu1i()
{
  {
    init_simple_test("aBFu33_C_BFu1i");
    static STRUCT_IF_C aBFu33_C_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu1i.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_C_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu1i, aBFu33_C_BFu1i)
//============================================================================



static void Test_aBFu33_C_BFu1ll()
{
  {
    init_simple_test("aBFu33_C_BFu1ll");
    static STRUCT_IF_C aBFu33_C_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu1ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_C_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu1ll, aBFu33_C_BFu1ll)
//============================================================================



static void Test_aBFu33_C_BFu1s()
{
  {
    init_simple_test("aBFu33_C_BFu1s");
    static STRUCT_IF_C aBFu33_C_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu1s.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_C_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu1s, aBFu33_C_BFu1s)
//============================================================================



static void Test_aBFu33_C_BFu31i()
{
  {
    init_simple_test("aBFu33_C_BFu31i");
    static STRUCT_IF_C aBFu33_C_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_C_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu31i.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu33_C_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu33_C_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu31i, aBFu33_C_BFu31i)
//============================================================================



static void Test_aBFu33_C_BFu31ll()
{
  {
    init_simple_test("aBFu33_C_BFu31ll");
    static STRUCT_IF_C aBFu33_C_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_C_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu31ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu33_C_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu33_C_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu31ll, aBFu33_C_BFu31ll)
//============================================================================



static void Test_aBFu33_C_BFu32i()
{
  {
    init_simple_test("aBFu33_C_BFu32i");
    static STRUCT_IF_C aBFu33_C_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_C_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu32i.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu33_C_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu33_C_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu32i, aBFu33_C_BFu32i)
//============================================================================



static void Test_aBFu33_C_BFu32ll()
{
  {
    init_simple_test("aBFu33_C_BFu32ll");
    static STRUCT_IF_C aBFu33_C_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_C_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu32ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu33_C_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu33_C_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu32ll, aBFu33_C_BFu32ll)
//============================================================================



static void Test_aBFu33_C_BFu33()
{
  {
    init_simple_test("aBFu33_C_BFu33");
    static STRUCT_IF_C aBFu33_C_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_C_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu33.v2");
    set_bf_and_test(lv, v3, 6, 0, 33, 1, "aBFu33_C_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu33, aBFu33_C_BFu33)
//============================================================================



static void Test_aBFu33_C_BFu7c()
{
  {
    init_simple_test("aBFu33_C_BFu7c");
    static STRUCT_IF_C aBFu33_C_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu7c.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_C_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_C_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu7c, aBFu33_C_BFu7c)
//============================================================================



static void Test_aBFu33_C_BFu7i()
{
  {
    init_simple_test("aBFu33_C_BFu7i");
    static STRUCT_IF_C aBFu33_C_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu7i.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_C_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_C_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu7i, aBFu33_C_BFu7i)
//============================================================================



static void Test_aBFu33_C_BFu7ll()
{
  {
    init_simple_test("aBFu33_C_BFu7ll");
    static STRUCT_IF_C aBFu33_C_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu7ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_C_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_C_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu7ll, aBFu33_C_BFu7ll)
//============================================================================



static void Test_aBFu33_C_BFu7s()
{
  {
    init_simple_test("aBFu33_C_BFu7s");
    static STRUCT_IF_C aBFu33_C_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu7s.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_C_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_C_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu7s, aBFu33_C_BFu7s)
//============================================================================



static void Test_aBFu33_C_BFu8c()
{
  {
    init_simple_test("aBFu33_C_BFu8c");
    static STRUCT_IF_C aBFu33_C_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu8c.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_C_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_C_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu8c, aBFu33_C_BFu8c)
//============================================================================



static void Test_aBFu33_C_BFu8i()
{
  {
    init_simple_test("aBFu33_C_BFu8i");
    static STRUCT_IF_C aBFu33_C_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu8i.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_C_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_C_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu8i, aBFu33_C_BFu8i)
//============================================================================



static void Test_aBFu33_C_BFu8ll()
{
  {
    init_simple_test("aBFu33_C_BFu8ll");
    static STRUCT_IF_C aBFu33_C_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu8ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_C_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_C_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu8ll, aBFu33_C_BFu8ll)
//============================================================================



static void Test_aBFu33_C_BFu8s()
{
  {
    init_simple_test("aBFu33_C_BFu8s");
    static STRUCT_IF_C aBFu33_C_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu8s.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_C_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_C_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu8s, aBFu33_C_BFu8s)
//============================================================================



static void Test_aBFu33_C_BFu9i()
{
  {
    init_simple_test("aBFu33_C_BFu9i");
    static STRUCT_IF_C aBFu33_C_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_C_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu9i.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_C_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_C_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu9i, aBFu33_C_BFu9i)
//============================================================================



static void Test_aBFu33_C_BFu9ll()
{
  {
    init_simple_test("aBFu33_C_BFu9ll");
    static STRUCT_IF_C aBFu33_C_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_C_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu9ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_C_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_C_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu9ll, aBFu33_C_BFu9ll)
//============================================================================



static void Test_aBFu33_C_BFu9s()
{
  {
    init_simple_test("aBFu33_C_BFu9s");
    static STRUCT_IF_C aBFu33_C_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_C_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_C_BFu9s.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_C_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_C_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_BFu9s, aBFu33_C_BFu9s)
//============================================================================



static void Test_aBFu33_C_C()
{
  {
    init_simple_test("aBFu33_C_C");
    static STRUCT_IF_C aBFu33_C_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_C");
    check_field_offset(lv, v2, 5, "aBFu33_C_C.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_C, aBFu33_C_C)
//============================================================================



static void Test_aBFu33_C_D()
{
  {
    init_simple_test("aBFu33_C_D");
    static STRUCT_IF_C aBFu33_C_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_C_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_D");
    check_field_offset(lv, v2, 5, "aBFu33_C_D.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_D, aBFu33_C_D)
//============================================================================



static void Test_aBFu33_C_F()
{
  {
    init_simple_test("aBFu33_C_F");
    static STRUCT_IF_C aBFu33_C_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_C_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_F");
    check_field_offset(lv, v2, 5, "aBFu33_C_F.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_F, aBFu33_C_F)
//============================================================================



static void Test_aBFu33_C_I()
{
  {
    init_simple_test("aBFu33_C_I");
    static STRUCT_IF_C aBFu33_C_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_C_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_I");
    check_field_offset(lv, v2, 5, "aBFu33_C_I.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_I, aBFu33_C_I)
//============================================================================



static void Test_aBFu33_C_Ip()
{
  {
    init_simple_test("aBFu33_C_Ip");
    static STRUCT_IF_C aBFu33_C_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_C_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_C_Ip.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_Ip, aBFu33_C_Ip)
//============================================================================



static void Test_aBFu33_C_L()
{
  {
    init_simple_test("aBFu33_C_L");
    static STRUCT_IF_C aBFu33_C_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_C_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_L");
    check_field_offset(lv, v2, 5, "aBFu33_C_L.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_L, aBFu33_C_L)
//============================================================================



static void Test_aBFu33_C_S()
{
  {
    init_simple_test("aBFu33_C_S");
    static STRUCT_IF_C aBFu33_C_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_C_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_S");
    check_field_offset(lv, v2, 5, "aBFu33_C_S.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_S, aBFu33_C_S)
//============================================================================



static void Test_aBFu33_C_Uc()
{
  {
    init_simple_test("aBFu33_C_Uc");
    static STRUCT_IF_C aBFu33_C_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_C_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_C_Uc.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_Uc, aBFu33_C_Uc)
//============================================================================



static void Test_aBFu33_C_Ui()
{
  {
    init_simple_test("aBFu33_C_Ui");
    static STRUCT_IF_C aBFu33_C_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_C_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_C_Ui.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_Ui, aBFu33_C_Ui)
//============================================================================



static void Test_aBFu33_C_Ul()
{
  {
    init_simple_test("aBFu33_C_Ul");
    static STRUCT_IF_C aBFu33_C_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_C_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_C_Ul.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_Ul, aBFu33_C_Ul)
//============================================================================



static void Test_aBFu33_C_Us()
{
  {
    init_simple_test("aBFu33_C_Us");
    static STRUCT_IF_C aBFu33_C_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_C_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_Us");
    check_field_offset(lv, v2, 5, "aBFu33_C_Us.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_Us, aBFu33_C_Us)
//============================================================================



static void Test_aBFu33_C_Vp()
{
  {
    init_simple_test("aBFu33_C_Vp");
    static STRUCT_IF_C aBFu33_C_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_C_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_C_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_C_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_C_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_C_Vp.v2");
    check_field_offset(lv, v3, 6, "aBFu33_C_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_C_Vp, aBFu33_C_Vp)
//============================================================================



static void Test_aBFu33_D()
{
  {
    init_simple_test("aBFu33_D");
    static STRUCT_IF_C aBFu33_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D");
    check_field_offset(lv, v2, 5, "aBFu33_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D, aBFu33_D)
//============================================================================



static void Test_aBFu33_D_BFu15i()
{
  {
    init_simple_test("aBFu33_D_BFu15i");
    static STRUCT_IF_C aBFu33_D_BFu15i lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_D_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu15i.v2");
    set_bf_and_test(lv, v3, 13, 0, 15, 1, "aBFu33_D_BFu15i");
    set_bf_and_test(lv, v3, 13, 0, 15, hide_ull(1LL<<14), "aBFu33_D_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu15i, aBFu33_D_BFu15i)
//============================================================================



static void Test_aBFu33_D_BFu15ll()
{
  {
    init_simple_test("aBFu33_D_BFu15ll");
    static STRUCT_IF_C aBFu33_D_BFu15ll lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_D_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu15ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 15, 1, "aBFu33_D_BFu15ll");
    set_bf_and_test(lv, v3, 13, 0, 15, hide_ull(1LL<<14), "aBFu33_D_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu15ll, aBFu33_D_BFu15ll)
//============================================================================



static void Test_aBFu33_D_BFu15s()
{
  {
    init_simple_test("aBFu33_D_BFu15s");
    static STRUCT_IF_C aBFu33_D_BFu15s lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_D_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu15s.v2");
    set_bf_and_test(lv, v3, 13, 0, 15, 1, "aBFu33_D_BFu15s");
    set_bf_and_test(lv, v3, 13, 0, 15, hide_ull(1LL<<14), "aBFu33_D_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu15s, aBFu33_D_BFu15s)
//============================================================================



static void Test_aBFu33_D_BFu16i()
{
  {
    init_simple_test("aBFu33_D_BFu16i");
    static STRUCT_IF_C aBFu33_D_BFu16i lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_D_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu16i.v2");
    set_bf_and_test(lv, v3, 13, 0, 16, 1, "aBFu33_D_BFu16i");
    set_bf_and_test(lv, v3, 13, 0, 16, hide_ull(1LL<<15), "aBFu33_D_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu16i, aBFu33_D_BFu16i)
//============================================================================



static void Test_aBFu33_D_BFu16ll()
{
  {
    init_simple_test("aBFu33_D_BFu16ll");
    static STRUCT_IF_C aBFu33_D_BFu16ll lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_D_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu16ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 16, 1, "aBFu33_D_BFu16ll");
    set_bf_and_test(lv, v3, 13, 0, 16, hide_ull(1LL<<15), "aBFu33_D_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu16ll, aBFu33_D_BFu16ll)
//============================================================================



static void Test_aBFu33_D_BFu16s()
{
  {
    init_simple_test("aBFu33_D_BFu16s");
    static STRUCT_IF_C aBFu33_D_BFu16s lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_D_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu16s.v2");
    set_bf_and_test(lv, v3, 13, 0, 16, 1, "aBFu33_D_BFu16s");
    set_bf_and_test(lv, v3, 13, 0, 16, hide_ull(1LL<<15), "aBFu33_D_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu16s, aBFu33_D_BFu16s)
//============================================================================



static void Test_aBFu33_D_BFu17i()
{
  {
    init_simple_test("aBFu33_D_BFu17i");
    static STRUCT_IF_C aBFu33_D_BFu17i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_D_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu17i.v2");
    set_bf_and_test(lv, v3, 13, 0, 17, 1, "aBFu33_D_BFu17i");
    set_bf_and_test(lv, v3, 13, 0, 17, hide_ull(1LL<<16), "aBFu33_D_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu17i, aBFu33_D_BFu17i)
//============================================================================



static void Test_aBFu33_D_BFu17ll()
{
  {
    init_simple_test("aBFu33_D_BFu17ll");
    static STRUCT_IF_C aBFu33_D_BFu17ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_D_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu17ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 17, 1, "aBFu33_D_BFu17ll");
    set_bf_and_test(lv, v3, 13, 0, 17, hide_ull(1LL<<16), "aBFu33_D_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu17ll, aBFu33_D_BFu17ll)
//============================================================================



static void Test_aBFu33_D_BFu1c()
{
  {
    init_simple_test("aBFu33_D_BFu1c");
    static STRUCT_IF_C aBFu33_D_BFu1c lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu1c.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_D_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu1c, aBFu33_D_BFu1c)
//============================================================================



static void Test_aBFu33_D_BFu1i()
{
  {
    init_simple_test("aBFu33_D_BFu1i");
    static STRUCT_IF_C aBFu33_D_BFu1i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu1i.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_D_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu1i, aBFu33_D_BFu1i)
//============================================================================



static void Test_aBFu33_D_BFu1ll()
{
  {
    init_simple_test("aBFu33_D_BFu1ll");
    static STRUCT_IF_C aBFu33_D_BFu1ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu1ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_D_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu1ll, aBFu33_D_BFu1ll)
//============================================================================



static void Test_aBFu33_D_BFu1s()
{
  {
    init_simple_test("aBFu33_D_BFu1s");
    static STRUCT_IF_C aBFu33_D_BFu1s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu1s.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_D_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu1s, aBFu33_D_BFu1s)
//============================================================================



static void Test_aBFu33_D_BFu31i()
{
  {
    init_simple_test("aBFu33_D_BFu31i");
    static STRUCT_IF_C aBFu33_D_BFu31i lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_D_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu31i.v2");
    set_bf_and_test(lv, v3, 13, 0, 31, 1, "aBFu33_D_BFu31i");
    set_bf_and_test(lv, v3, 13, 0, 31, hide_ull(1LL<<30), "aBFu33_D_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu31i, aBFu33_D_BFu31i)
//============================================================================



static void Test_aBFu33_D_BFu31ll()
{
  {
    init_simple_test("aBFu33_D_BFu31ll");
    static STRUCT_IF_C aBFu33_D_BFu31ll lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_D_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu31ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 31, 1, "aBFu33_D_BFu31ll");
    set_bf_and_test(lv, v3, 13, 0, 31, hide_ull(1LL<<30), "aBFu33_D_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu31ll, aBFu33_D_BFu31ll)
//============================================================================



static void Test_aBFu33_D_BFu32i()
{
  {
    init_simple_test("aBFu33_D_BFu32i");
    static STRUCT_IF_C aBFu33_D_BFu32i lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_D_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu32i.v2");
    set_bf_and_test(lv, v3, 13, 0, 32, 1, "aBFu33_D_BFu32i");
    set_bf_and_test(lv, v3, 13, 0, 32, hide_ull(1LL<<31), "aBFu33_D_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu32i, aBFu33_D_BFu32i)
//============================================================================



static void Test_aBFu33_D_BFu32ll()
{
  {
    init_simple_test("aBFu33_D_BFu32ll");
    static STRUCT_IF_C aBFu33_D_BFu32ll lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_D_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu32ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 32, 1, "aBFu33_D_BFu32ll");
    set_bf_and_test(lv, v3, 13, 0, 32, hide_ull(1LL<<31), "aBFu33_D_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu32ll, aBFu33_D_BFu32ll)
//============================================================================



static void Test_aBFu33_D_BFu33()
{
  {
    init_simple_test("aBFu33_D_BFu33");
    static STRUCT_IF_C aBFu33_D_BFu33 lv;
    check2(sizeof(lv), 18, "sizeof(aBFu33_D_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu33.v2");
    set_bf_and_test(lv, v3, 13, 0, 33, 1, "aBFu33_D_BFu33");
    set_bf_and_test(lv, v3, 13, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu33, aBFu33_D_BFu33)
//============================================================================



static void Test_aBFu33_D_BFu7c()
{
  {
    init_simple_test("aBFu33_D_BFu7c");
    static STRUCT_IF_C aBFu33_D_BFu7c lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu7c.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_D_BFu7c");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_D_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu7c, aBFu33_D_BFu7c)
//============================================================================



static void Test_aBFu33_D_BFu7i()
{
  {
    init_simple_test("aBFu33_D_BFu7i");
    static STRUCT_IF_C aBFu33_D_BFu7i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu7i.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_D_BFu7i");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_D_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu7i, aBFu33_D_BFu7i)
//============================================================================



static void Test_aBFu33_D_BFu7ll()
{
  {
    init_simple_test("aBFu33_D_BFu7ll");
    static STRUCT_IF_C aBFu33_D_BFu7ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu7ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_D_BFu7ll");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_D_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu7ll, aBFu33_D_BFu7ll)
//============================================================================



static void Test_aBFu33_D_BFu7s()
{
  {
    init_simple_test("aBFu33_D_BFu7s");
    static STRUCT_IF_C aBFu33_D_BFu7s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu7s.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_D_BFu7s");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_D_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu7s, aBFu33_D_BFu7s)
//============================================================================



static void Test_aBFu33_D_BFu8c()
{
  {
    init_simple_test("aBFu33_D_BFu8c");
    static STRUCT_IF_C aBFu33_D_BFu8c lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu8c.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_D_BFu8c");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_D_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu8c, aBFu33_D_BFu8c)
//============================================================================



static void Test_aBFu33_D_BFu8i()
{
  {
    init_simple_test("aBFu33_D_BFu8i");
    static STRUCT_IF_C aBFu33_D_BFu8i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu8i.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_D_BFu8i");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_D_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu8i, aBFu33_D_BFu8i)
//============================================================================



static void Test_aBFu33_D_BFu8ll()
{
  {
    init_simple_test("aBFu33_D_BFu8ll");
    static STRUCT_IF_C aBFu33_D_BFu8ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu8ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_D_BFu8ll");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_D_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu8ll, aBFu33_D_BFu8ll)
//============================================================================



static void Test_aBFu33_D_BFu8s()
{
  {
    init_simple_test("aBFu33_D_BFu8s");
    static STRUCT_IF_C aBFu33_D_BFu8s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu8s.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_D_BFu8s");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_D_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu8s, aBFu33_D_BFu8s)
//============================================================================



static void Test_aBFu33_D_BFu9i()
{
  {
    init_simple_test("aBFu33_D_BFu9i");
    static STRUCT_IF_C aBFu33_D_BFu9i lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_D_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu9i.v2");
    set_bf_and_test(lv, v3, 13, 0, 9, 1, "aBFu33_D_BFu9i");
    set_bf_and_test(lv, v3, 13, 0, 9, hide_ull(1LL<<8), "aBFu33_D_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu9i, aBFu33_D_BFu9i)
//============================================================================



static void Test_aBFu33_D_BFu9ll()
{
  {
    init_simple_test("aBFu33_D_BFu9ll");
    static STRUCT_IF_C aBFu33_D_BFu9ll lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_D_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu9ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 9, 1, "aBFu33_D_BFu9ll");
    set_bf_and_test(lv, v3, 13, 0, 9, hide_ull(1LL<<8), "aBFu33_D_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu9ll, aBFu33_D_BFu9ll)
//============================================================================



static void Test_aBFu33_D_BFu9s()
{
  {
    init_simple_test("aBFu33_D_BFu9s");
    static STRUCT_IF_C aBFu33_D_BFu9s lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_D_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_D_BFu9s.v2");
    set_bf_and_test(lv, v3, 13, 0, 9, 1, "aBFu33_D_BFu9s");
    set_bf_and_test(lv, v3, 13, 0, 9, hide_ull(1LL<<8), "aBFu33_D_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_BFu9s, aBFu33_D_BFu9s)
//============================================================================



static void Test_aBFu33_D_C()
{
  {
    init_simple_test("aBFu33_D_C");
    static STRUCT_IF_C aBFu33_D_C lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_C");
    check_field_offset(lv, v2, 5, "aBFu33_D_C.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_C, aBFu33_D_C)
//============================================================================



static void Test_aBFu33_D_D()
{
  {
    init_simple_test("aBFu33_D_D");
    static STRUCT_IF_C aBFu33_D_D lv;
    check2(sizeof(lv), 21, "sizeof(aBFu33_D_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_D");
    check_field_offset(lv, v2, 5, "aBFu33_D_D.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_D, aBFu33_D_D)
//============================================================================



static void Test_aBFu33_D_F()
{
  {
    init_simple_test("aBFu33_D_F");
    static STRUCT_IF_C aBFu33_D_F lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_D_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_F");
    check_field_offset(lv, v2, 5, "aBFu33_D_F.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_F, aBFu33_D_F)
//============================================================================



static void Test_aBFu33_D_I()
{
  {
    init_simple_test("aBFu33_D_I");
    static STRUCT_IF_C aBFu33_D_I lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_D_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_I");
    check_field_offset(lv, v2, 5, "aBFu33_D_I.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_I, aBFu33_D_I)
//============================================================================



static void Test_aBFu33_D_Ip()
{
  {
    init_simple_test("aBFu33_D_Ip");
    static STRUCT_IF_C aBFu33_D_Ip lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_D_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_D_Ip.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_Ip, aBFu33_D_Ip)
//============================================================================



static void Test_aBFu33_D_L()
{
  {
    init_simple_test("aBFu33_D_L");
    static STRUCT_IF_C aBFu33_D_L lv;
    check2(sizeof(lv), 21, "sizeof(aBFu33_D_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_L");
    check_field_offset(lv, v2, 5, "aBFu33_D_L.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_L, aBFu33_D_L)
//============================================================================



static void Test_aBFu33_D_S()
{
  {
    init_simple_test("aBFu33_D_S");
    static STRUCT_IF_C aBFu33_D_S lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_D_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_S");
    check_field_offset(lv, v2, 5, "aBFu33_D_S.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_S, aBFu33_D_S)
//============================================================================



static void Test_aBFu33_D_Uc()
{
  {
    init_simple_test("aBFu33_D_Uc");
    static STRUCT_IF_C aBFu33_D_Uc lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_D_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_D_Uc.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_Uc, aBFu33_D_Uc)
//============================================================================



static void Test_aBFu33_D_Ui()
{
  {
    init_simple_test("aBFu33_D_Ui");
    static STRUCT_IF_C aBFu33_D_Ui lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_D_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_D_Ui.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_Ui, aBFu33_D_Ui)
//============================================================================



static void Test_aBFu33_D_Ul()
{
  {
    init_simple_test("aBFu33_D_Ul");
    static STRUCT_IF_C aBFu33_D_Ul lv;
    check2(sizeof(lv), 21, "sizeof(aBFu33_D_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_D_Ul.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_Ul, aBFu33_D_Ul)
//============================================================================



static void Test_aBFu33_D_Us()
{
  {
    init_simple_test("aBFu33_D_Us");
    static STRUCT_IF_C aBFu33_D_Us lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_D_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_Us");
    check_field_offset(lv, v2, 5, "aBFu33_D_Us.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_Us, aBFu33_D_Us)
//============================================================================



static void Test_aBFu33_D_Vp()
{
  {
    init_simple_test("aBFu33_D_Vp");
    static STRUCT_IF_C aBFu33_D_Vp lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_D_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_D_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_D_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_D_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_D_Vp.v2");
    check_field_offset(lv, v3, 13, "aBFu33_D_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_D_Vp, aBFu33_D_Vp)
//============================================================================



static void Test_aBFu33_F()
{
  {
    init_simple_test("aBFu33_F");
    static STRUCT_IF_C aBFu33_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F");
    check_field_offset(lv, v2, 5, "aBFu33_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F, aBFu33_F)
//============================================================================



static void Test_aBFu33_F_BFu15i()
{
  {
    init_simple_test("aBFu33_F_BFu15i");
    static STRUCT_IF_C aBFu33_F_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_F_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu33_F_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu33_F_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu15i, aBFu33_F_BFu15i)
//============================================================================



static void Test_aBFu33_F_BFu15ll()
{
  {
    init_simple_test("aBFu33_F_BFu15ll");
    static STRUCT_IF_C aBFu33_F_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_F_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu33_F_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu33_F_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu15ll, aBFu33_F_BFu15ll)
//============================================================================



static void Test_aBFu33_F_BFu15s()
{
  {
    init_simple_test("aBFu33_F_BFu15s");
    static STRUCT_IF_C aBFu33_F_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_F_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu33_F_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu33_F_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu15s, aBFu33_F_BFu15s)
//============================================================================



static void Test_aBFu33_F_BFu16i()
{
  {
    init_simple_test("aBFu33_F_BFu16i");
    static STRUCT_IF_C aBFu33_F_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_F_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu33_F_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu33_F_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu16i, aBFu33_F_BFu16i)
//============================================================================



static void Test_aBFu33_F_BFu16ll()
{
  {
    init_simple_test("aBFu33_F_BFu16ll");
    static STRUCT_IF_C aBFu33_F_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_F_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu33_F_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu33_F_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu16ll, aBFu33_F_BFu16ll)
//============================================================================



static void Test_aBFu33_F_BFu16s()
{
  {
    init_simple_test("aBFu33_F_BFu16s");
    static STRUCT_IF_C aBFu33_F_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_F_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu33_F_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu33_F_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu16s, aBFu33_F_BFu16s)
//============================================================================



static void Test_aBFu33_F_BFu17i()
{
  {
    init_simple_test("aBFu33_F_BFu17i");
    static STRUCT_IF_C aBFu33_F_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_F_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu33_F_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu33_F_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu17i, aBFu33_F_BFu17i)
//============================================================================



static void Test_aBFu33_F_BFu17ll()
{
  {
    init_simple_test("aBFu33_F_BFu17ll");
    static STRUCT_IF_C aBFu33_F_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_F_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu33_F_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu33_F_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu17ll, aBFu33_F_BFu17ll)
//============================================================================



static void Test_aBFu33_F_BFu1c()
{
  {
    init_simple_test("aBFu33_F_BFu1c");
    static STRUCT_IF_C aBFu33_F_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_F_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu1c, aBFu33_F_BFu1c)
//============================================================================



static void Test_aBFu33_F_BFu1i()
{
  {
    init_simple_test("aBFu33_F_BFu1i");
    static STRUCT_IF_C aBFu33_F_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_F_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu1i, aBFu33_F_BFu1i)
//============================================================================



static void Test_aBFu33_F_BFu1ll()
{
  {
    init_simple_test("aBFu33_F_BFu1ll");
    static STRUCT_IF_C aBFu33_F_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_F_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu1ll, aBFu33_F_BFu1ll)
//============================================================================



static void Test_aBFu33_F_BFu1s()
{
  {
    init_simple_test("aBFu33_F_BFu1s");
    static STRUCT_IF_C aBFu33_F_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_F_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu1s, aBFu33_F_BFu1s)
//============================================================================



static void Test_aBFu33_F_BFu31i()
{
  {
    init_simple_test("aBFu33_F_BFu31i");
    static STRUCT_IF_C aBFu33_F_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_F_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu33_F_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu33_F_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu31i, aBFu33_F_BFu31i)
//============================================================================



static void Test_aBFu33_F_BFu31ll()
{
  {
    init_simple_test("aBFu33_F_BFu31ll");
    static STRUCT_IF_C aBFu33_F_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_F_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu33_F_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu33_F_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu31ll, aBFu33_F_BFu31ll)
//============================================================================



static void Test_aBFu33_F_BFu32i()
{
  {
    init_simple_test("aBFu33_F_BFu32i");
    static STRUCT_IF_C aBFu33_F_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_F_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu33_F_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu33_F_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu32i, aBFu33_F_BFu32i)
//============================================================================



static void Test_aBFu33_F_BFu32ll()
{
  {
    init_simple_test("aBFu33_F_BFu32ll");
    static STRUCT_IF_C aBFu33_F_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_F_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu33_F_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu33_F_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu32ll, aBFu33_F_BFu32ll)
//============================================================================



static void Test_aBFu33_F_BFu33()
{
  {
    init_simple_test("aBFu33_F_BFu33");
    static STRUCT_IF_C aBFu33_F_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_F_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "aBFu33_F_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu33, aBFu33_F_BFu33)
//============================================================================



static void Test_aBFu33_F_BFu7c()
{
  {
    init_simple_test("aBFu33_F_BFu7c");
    static STRUCT_IF_C aBFu33_F_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_F_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_F_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu7c, aBFu33_F_BFu7c)
//============================================================================



static void Test_aBFu33_F_BFu7i()
{
  {
    init_simple_test("aBFu33_F_BFu7i");
    static STRUCT_IF_C aBFu33_F_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_F_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_F_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu7i, aBFu33_F_BFu7i)
//============================================================================



static void Test_aBFu33_F_BFu7ll()
{
  {
    init_simple_test("aBFu33_F_BFu7ll");
    static STRUCT_IF_C aBFu33_F_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_F_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_F_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu7ll, aBFu33_F_BFu7ll)
//============================================================================



static void Test_aBFu33_F_BFu7s()
{
  {
    init_simple_test("aBFu33_F_BFu7s");
    static STRUCT_IF_C aBFu33_F_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_F_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_F_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu7s, aBFu33_F_BFu7s)
//============================================================================



static void Test_aBFu33_F_BFu8c()
{
  {
    init_simple_test("aBFu33_F_BFu8c");
    static STRUCT_IF_C aBFu33_F_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_F_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_F_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu8c, aBFu33_F_BFu8c)
//============================================================================



static void Test_aBFu33_F_BFu8i()
{
  {
    init_simple_test("aBFu33_F_BFu8i");
    static STRUCT_IF_C aBFu33_F_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_F_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_F_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu8i, aBFu33_F_BFu8i)
//============================================================================



static void Test_aBFu33_F_BFu8ll()
{
  {
    init_simple_test("aBFu33_F_BFu8ll");
    static STRUCT_IF_C aBFu33_F_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_F_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_F_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu8ll, aBFu33_F_BFu8ll)
//============================================================================



static void Test_aBFu33_F_BFu8s()
{
  {
    init_simple_test("aBFu33_F_BFu8s");
    static STRUCT_IF_C aBFu33_F_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_F_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_F_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu8s, aBFu33_F_BFu8s)
//============================================================================



static void Test_aBFu33_F_BFu9i()
{
  {
    init_simple_test("aBFu33_F_BFu9i");
    static STRUCT_IF_C aBFu33_F_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_F_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu33_F_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu33_F_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu9i, aBFu33_F_BFu9i)
//============================================================================



static void Test_aBFu33_F_BFu9ll()
{
  {
    init_simple_test("aBFu33_F_BFu9ll");
    static STRUCT_IF_C aBFu33_F_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_F_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu33_F_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu33_F_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu9ll, aBFu33_F_BFu9ll)
//============================================================================



static void Test_aBFu33_F_BFu9s()
{
  {
    init_simple_test("aBFu33_F_BFu9s");
    static STRUCT_IF_C aBFu33_F_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_F_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_F_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu33_F_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu33_F_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_BFu9s, aBFu33_F_BFu9s)
//============================================================================



static void Test_aBFu33_F_C()
{
  {
    init_simple_test("aBFu33_F_C");
    static STRUCT_IF_C aBFu33_F_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_C");
    check_field_offset(lv, v2, 5, "aBFu33_F_C.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_C, aBFu33_F_C)
//============================================================================



static void Test_aBFu33_F_D()
{
  {
    init_simple_test("aBFu33_F_D");
    static STRUCT_IF_C aBFu33_F_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_F_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_D");
    check_field_offset(lv, v2, 5, "aBFu33_F_D.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_D, aBFu33_F_D)
//============================================================================



static void Test_aBFu33_F_F()
{
  {
    init_simple_test("aBFu33_F_F");
    static STRUCT_IF_C aBFu33_F_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_F_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_F");
    check_field_offset(lv, v2, 5, "aBFu33_F_F.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_F, aBFu33_F_F)
//============================================================================



static void Test_aBFu33_F_I()
{
  {
    init_simple_test("aBFu33_F_I");
    static STRUCT_IF_C aBFu33_F_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_F_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_I");
    check_field_offset(lv, v2, 5, "aBFu33_F_I.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_I, aBFu33_F_I)
//============================================================================



static void Test_aBFu33_F_Ip()
{
  {
    init_simple_test("aBFu33_F_Ip");
    static STRUCT_IF_C aBFu33_F_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_F_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_F_Ip.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_Ip, aBFu33_F_Ip)
//============================================================================



static void Test_aBFu33_F_L()
{
  {
    init_simple_test("aBFu33_F_L");
    static STRUCT_IF_C aBFu33_F_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_F_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_L");
    check_field_offset(lv, v2, 5, "aBFu33_F_L.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_L, aBFu33_F_L)
//============================================================================



static void Test_aBFu33_F_S()
{
  {
    init_simple_test("aBFu33_F_S");
    static STRUCT_IF_C aBFu33_F_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_F_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_S");
    check_field_offset(lv, v2, 5, "aBFu33_F_S.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_S, aBFu33_F_S)
//============================================================================



static void Test_aBFu33_F_Uc()
{
  {
    init_simple_test("aBFu33_F_Uc");
    static STRUCT_IF_C aBFu33_F_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_F_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_F_Uc.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_Uc, aBFu33_F_Uc)
//============================================================================



static void Test_aBFu33_F_Ui()
{
  {
    init_simple_test("aBFu33_F_Ui");
    static STRUCT_IF_C aBFu33_F_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_F_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_F_Ui.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_Ui, aBFu33_F_Ui)
//============================================================================



static void Test_aBFu33_F_Ul()
{
  {
    init_simple_test("aBFu33_F_Ul");
    static STRUCT_IF_C aBFu33_F_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_F_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_F_Ul.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_Ul, aBFu33_F_Ul)
//============================================================================



static void Test_aBFu33_F_Us()
{
  {
    init_simple_test("aBFu33_F_Us");
    static STRUCT_IF_C aBFu33_F_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_F_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_Us");
    check_field_offset(lv, v2, 5, "aBFu33_F_Us.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_Us, aBFu33_F_Us)
//============================================================================



static void Test_aBFu33_F_Vp()
{
  {
    init_simple_test("aBFu33_F_Vp");
    static STRUCT_IF_C aBFu33_F_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_F_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_F_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_F_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_F_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_F_Vp.v2");
    check_field_offset(lv, v3, 9, "aBFu33_F_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_F_Vp, aBFu33_F_Vp)
//============================================================================



static void Test_aBFu33_I()
{
  {
    init_simple_test("aBFu33_I");
    static STRUCT_IF_C aBFu33_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I");
    check_field_offset(lv, v2, 5, "aBFu33_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I, aBFu33_I)
//============================================================================



static void Test_aBFu33_I_BFu15i()
{
  {
    init_simple_test("aBFu33_I_BFu15i");
    static STRUCT_IF_C aBFu33_I_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_I_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu33_I_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu33_I_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu15i, aBFu33_I_BFu15i)
//============================================================================



static void Test_aBFu33_I_BFu15ll()
{
  {
    init_simple_test("aBFu33_I_BFu15ll");
    static STRUCT_IF_C aBFu33_I_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_I_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu33_I_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu33_I_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu15ll, aBFu33_I_BFu15ll)
//============================================================================



static void Test_aBFu33_I_BFu15s()
{
  {
    init_simple_test("aBFu33_I_BFu15s");
    static STRUCT_IF_C aBFu33_I_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_I_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu33_I_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu33_I_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu15s, aBFu33_I_BFu15s)
//============================================================================



static void Test_aBFu33_I_BFu16i()
{
  {
    init_simple_test("aBFu33_I_BFu16i");
    static STRUCT_IF_C aBFu33_I_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_I_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu33_I_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu33_I_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu16i, aBFu33_I_BFu16i)
//============================================================================



static void Test_aBFu33_I_BFu16ll()
{
  {
    init_simple_test("aBFu33_I_BFu16ll");
    static STRUCT_IF_C aBFu33_I_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_I_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu33_I_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu33_I_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu16ll, aBFu33_I_BFu16ll)
//============================================================================



static void Test_aBFu33_I_BFu16s()
{
  {
    init_simple_test("aBFu33_I_BFu16s");
    static STRUCT_IF_C aBFu33_I_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_I_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu33_I_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu33_I_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu16s, aBFu33_I_BFu16s)
//============================================================================



static void Test_aBFu33_I_BFu17i()
{
  {
    init_simple_test("aBFu33_I_BFu17i");
    static STRUCT_IF_C aBFu33_I_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_I_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu33_I_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu33_I_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu17i, aBFu33_I_BFu17i)
//============================================================================



static void Test_aBFu33_I_BFu17ll()
{
  {
    init_simple_test("aBFu33_I_BFu17ll");
    static STRUCT_IF_C aBFu33_I_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_I_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu33_I_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu33_I_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu17ll, aBFu33_I_BFu17ll)
//============================================================================



static void Test_aBFu33_I_BFu1c()
{
  {
    init_simple_test("aBFu33_I_BFu1c");
    static STRUCT_IF_C aBFu33_I_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_I_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu1c, aBFu33_I_BFu1c)
//============================================================================



static void Test_aBFu33_I_BFu1i()
{
  {
    init_simple_test("aBFu33_I_BFu1i");
    static STRUCT_IF_C aBFu33_I_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_I_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu1i, aBFu33_I_BFu1i)
//============================================================================



static void Test_aBFu33_I_BFu1ll()
{
  {
    init_simple_test("aBFu33_I_BFu1ll");
    static STRUCT_IF_C aBFu33_I_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_I_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu1ll, aBFu33_I_BFu1ll)
//============================================================================



static void Test_aBFu33_I_BFu1s()
{
  {
    init_simple_test("aBFu33_I_BFu1s");
    static STRUCT_IF_C aBFu33_I_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_I_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu1s, aBFu33_I_BFu1s)
//============================================================================



static void Test_aBFu33_I_BFu31i()
{
  {
    init_simple_test("aBFu33_I_BFu31i");
    static STRUCT_IF_C aBFu33_I_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_I_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu33_I_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu33_I_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu31i, aBFu33_I_BFu31i)
//============================================================================



static void Test_aBFu33_I_BFu31ll()
{
  {
    init_simple_test("aBFu33_I_BFu31ll");
    static STRUCT_IF_C aBFu33_I_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_I_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu33_I_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu33_I_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu31ll, aBFu33_I_BFu31ll)
//============================================================================



static void Test_aBFu33_I_BFu32i()
{
  {
    init_simple_test("aBFu33_I_BFu32i");
    static STRUCT_IF_C aBFu33_I_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_I_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu33_I_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu33_I_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu32i, aBFu33_I_BFu32i)
//============================================================================



static void Test_aBFu33_I_BFu32ll()
{
  {
    init_simple_test("aBFu33_I_BFu32ll");
    static STRUCT_IF_C aBFu33_I_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_I_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu33_I_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu33_I_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu32ll, aBFu33_I_BFu32ll)
//============================================================================



static void Test_aBFu33_I_BFu33()
{
  {
    init_simple_test("aBFu33_I_BFu33");
    static STRUCT_IF_C aBFu33_I_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_I_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "aBFu33_I_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu33, aBFu33_I_BFu33)
//============================================================================



static void Test_aBFu33_I_BFu7c()
{
  {
    init_simple_test("aBFu33_I_BFu7c");
    static STRUCT_IF_C aBFu33_I_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_I_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_I_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu7c, aBFu33_I_BFu7c)
//============================================================================



static void Test_aBFu33_I_BFu7i()
{
  {
    init_simple_test("aBFu33_I_BFu7i");
    static STRUCT_IF_C aBFu33_I_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_I_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_I_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu7i, aBFu33_I_BFu7i)
//============================================================================



static void Test_aBFu33_I_BFu7ll()
{
  {
    init_simple_test("aBFu33_I_BFu7ll");
    static STRUCT_IF_C aBFu33_I_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_I_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_I_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu7ll, aBFu33_I_BFu7ll)
//============================================================================



static void Test_aBFu33_I_BFu7s()
{
  {
    init_simple_test("aBFu33_I_BFu7s");
    static STRUCT_IF_C aBFu33_I_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_I_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_I_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu7s, aBFu33_I_BFu7s)
//============================================================================



static void Test_aBFu33_I_BFu8c()
{
  {
    init_simple_test("aBFu33_I_BFu8c");
    static STRUCT_IF_C aBFu33_I_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_I_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_I_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu8c, aBFu33_I_BFu8c)
//============================================================================



static void Test_aBFu33_I_BFu8i()
{
  {
    init_simple_test("aBFu33_I_BFu8i");
    static STRUCT_IF_C aBFu33_I_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_I_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_I_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu8i, aBFu33_I_BFu8i)
//============================================================================



static void Test_aBFu33_I_BFu8ll()
{
  {
    init_simple_test("aBFu33_I_BFu8ll");
    static STRUCT_IF_C aBFu33_I_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_I_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_I_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu8ll, aBFu33_I_BFu8ll)
//============================================================================



static void Test_aBFu33_I_BFu8s()
{
  {
    init_simple_test("aBFu33_I_BFu8s");
    static STRUCT_IF_C aBFu33_I_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_I_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_I_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu8s, aBFu33_I_BFu8s)
//============================================================================



static void Test_aBFu33_I_BFu9i()
{
  {
    init_simple_test("aBFu33_I_BFu9i");
    static STRUCT_IF_C aBFu33_I_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_I_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu33_I_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu33_I_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu9i, aBFu33_I_BFu9i)
//============================================================================



static void Test_aBFu33_I_BFu9ll()
{
  {
    init_simple_test("aBFu33_I_BFu9ll");
    static STRUCT_IF_C aBFu33_I_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_I_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu33_I_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu33_I_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu9ll, aBFu33_I_BFu9ll)
//============================================================================



static void Test_aBFu33_I_BFu9s()
{
  {
    init_simple_test("aBFu33_I_BFu9s");
    static STRUCT_IF_C aBFu33_I_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_I_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_I_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu33_I_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu33_I_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_BFu9s, aBFu33_I_BFu9s)
//============================================================================



static void Test_aBFu33_I_C()
{
  {
    init_simple_test("aBFu33_I_C");
    static STRUCT_IF_C aBFu33_I_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_C");
    check_field_offset(lv, v2, 5, "aBFu33_I_C.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_C, aBFu33_I_C)
//============================================================================



static void Test_aBFu33_I_D()
{
  {
    init_simple_test("aBFu33_I_D");
    static STRUCT_IF_C aBFu33_I_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_I_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_D");
    check_field_offset(lv, v2, 5, "aBFu33_I_D.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_D, aBFu33_I_D)
//============================================================================



static void Test_aBFu33_I_F()
{
  {
    init_simple_test("aBFu33_I_F");
    static STRUCT_IF_C aBFu33_I_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_I_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_F");
    check_field_offset(lv, v2, 5, "aBFu33_I_F.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_F, aBFu33_I_F)
//============================================================================



static void Test_aBFu33_I_I()
{
  {
    init_simple_test("aBFu33_I_I");
    static STRUCT_IF_C aBFu33_I_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_I_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_I");
    check_field_offset(lv, v2, 5, "aBFu33_I_I.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_I, aBFu33_I_I)
//============================================================================



static void Test_aBFu33_I_Ip()
{
  {
    init_simple_test("aBFu33_I_Ip");
    static STRUCT_IF_C aBFu33_I_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_I_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_I_Ip.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_Ip, aBFu33_I_Ip)
//============================================================================



static void Test_aBFu33_I_L()
{
  {
    init_simple_test("aBFu33_I_L");
    static STRUCT_IF_C aBFu33_I_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_I_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_L");
    check_field_offset(lv, v2, 5, "aBFu33_I_L.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_L, aBFu33_I_L)
//============================================================================



static void Test_aBFu33_I_S()
{
  {
    init_simple_test("aBFu33_I_S");
    static STRUCT_IF_C aBFu33_I_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_I_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_S");
    check_field_offset(lv, v2, 5, "aBFu33_I_S.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_S, aBFu33_I_S)
//============================================================================



static void Test_aBFu33_I_Uc()
{
  {
    init_simple_test("aBFu33_I_Uc");
    static STRUCT_IF_C aBFu33_I_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_I_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_I_Uc.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_Uc, aBFu33_I_Uc)
//============================================================================



static void Test_aBFu33_I_Ui()
{
  {
    init_simple_test("aBFu33_I_Ui");
    static STRUCT_IF_C aBFu33_I_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_I_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_I_Ui.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_Ui, aBFu33_I_Ui)
//============================================================================



static void Test_aBFu33_I_Ul()
{
  {
    init_simple_test("aBFu33_I_Ul");
    static STRUCT_IF_C aBFu33_I_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_I_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_I_Ul.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_Ul, aBFu33_I_Ul)
//============================================================================



static void Test_aBFu33_I_Us()
{
  {
    init_simple_test("aBFu33_I_Us");
    static STRUCT_IF_C aBFu33_I_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_I_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_Us");
    check_field_offset(lv, v2, 5, "aBFu33_I_Us.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_Us, aBFu33_I_Us)
//============================================================================



static void Test_aBFu33_I_Vp()
{
  {
    init_simple_test("aBFu33_I_Vp");
    static STRUCT_IF_C aBFu33_I_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_I_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_I_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_I_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_I_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_I_Vp.v2");
    check_field_offset(lv, v3, 9, "aBFu33_I_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_I_Vp, aBFu33_I_Vp)
//============================================================================



static void Test_aBFu33_Ip()
{
  {
    init_simple_test("aBFu33_Ip");
    static STRUCT_IF_C aBFu33_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip, aBFu33_Ip)
//============================================================================



static void Test_aBFu33_Ip_BFu15i()
{
  {
    init_simple_test("aBFu33_Ip_BFu15i");
    static STRUCT_IF_C aBFu33_Ip_BFu15i lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Ip_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, 1, "aBFu33_Ip_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, hide_ull(1LL<<14), "aBFu33_Ip_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu15i, aBFu33_Ip_BFu15i)
//============================================================================



static void Test_aBFu33_Ip_BFu15ll()
{
  {
    init_simple_test("aBFu33_Ip_BFu15ll");
    static STRUCT_IF_C aBFu33_Ip_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Ip_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, 1, "aBFu33_Ip_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, hide_ull(1LL<<14), "aBFu33_Ip_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu15ll, aBFu33_Ip_BFu15ll)
//============================================================================



static void Test_aBFu33_Ip_BFu15s()
{
  {
    init_simple_test("aBFu33_Ip_BFu15s");
    static STRUCT_IF_C aBFu33_Ip_BFu15s lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Ip_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, 1, "aBFu33_Ip_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, hide_ull(1LL<<14), "aBFu33_Ip_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu15s, aBFu33_Ip_BFu15s)
//============================================================================



static void Test_aBFu33_Ip_BFu16i()
{
  {
    init_simple_test("aBFu33_Ip_BFu16i");
    static STRUCT_IF_C aBFu33_Ip_BFu16i lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Ip_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, 1, "aBFu33_Ip_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, hide_ull(1LL<<15), "aBFu33_Ip_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu16i, aBFu33_Ip_BFu16i)
//============================================================================



static void Test_aBFu33_Ip_BFu16ll()
{
  {
    init_simple_test("aBFu33_Ip_BFu16ll");
    static STRUCT_IF_C aBFu33_Ip_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Ip_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, 1, "aBFu33_Ip_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, hide_ull(1LL<<15), "aBFu33_Ip_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu16ll, aBFu33_Ip_BFu16ll)
//============================================================================



static void Test_aBFu33_Ip_BFu16s()
{
  {
    init_simple_test("aBFu33_Ip_BFu16s");
    static STRUCT_IF_C aBFu33_Ip_BFu16s lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Ip_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, 1, "aBFu33_Ip_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, hide_ull(1LL<<15), "aBFu33_Ip_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu16s, aBFu33_Ip_BFu16s)
//============================================================================



static void Test_aBFu33_Ip_BFu17i()
{
  {
    init_simple_test("aBFu33_Ip_BFu17i");
    static STRUCT_IF_C aBFu33_Ip_BFu17i lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu33_Ip_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 17, 1, "aBFu33_Ip_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 17, hide_ull(1LL<<16), "aBFu33_Ip_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu17i, aBFu33_Ip_BFu17i)
//============================================================================



static void Test_aBFu33_Ip_BFu17ll()
{
  {
    init_simple_test("aBFu33_Ip_BFu17ll");
    static STRUCT_IF_C aBFu33_Ip_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu33_Ip_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 17, 1, "aBFu33_Ip_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 17, hide_ull(1LL<<16), "aBFu33_Ip_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu17ll, aBFu33_Ip_BFu17ll)
//============================================================================



static void Test_aBFu33_Ip_BFu1c()
{
  {
    init_simple_test("aBFu33_Ip_BFu1c");
    static STRUCT_IF_C aBFu33_Ip_BFu1c lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 1, 1, "aBFu33_Ip_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu1c, aBFu33_Ip_BFu1c)
//============================================================================



static void Test_aBFu33_Ip_BFu1i()
{
  {
    init_simple_test("aBFu33_Ip_BFu1i");
    static STRUCT_IF_C aBFu33_Ip_BFu1i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 1, 1, "aBFu33_Ip_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu1i, aBFu33_Ip_BFu1i)
//============================================================================



static void Test_aBFu33_Ip_BFu1ll()
{
  {
    init_simple_test("aBFu33_Ip_BFu1ll");
    static STRUCT_IF_C aBFu33_Ip_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 1, 1, "aBFu33_Ip_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu1ll, aBFu33_Ip_BFu1ll)
//============================================================================



static void Test_aBFu33_Ip_BFu1s()
{
  {
    init_simple_test("aBFu33_Ip_BFu1s");
    static STRUCT_IF_C aBFu33_Ip_BFu1s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 1, 1, "aBFu33_Ip_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu1s, aBFu33_Ip_BFu1s)
//============================================================================



static void Test_aBFu33_Ip_BFu31i()
{
  {
    init_simple_test("aBFu33_Ip_BFu31i");
    static STRUCT_IF_C aBFu33_Ip_BFu31i lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Ip_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 31, 1, "aBFu33_Ip_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 31, hide_ull(1LL<<30), "aBFu33_Ip_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu31i, aBFu33_Ip_BFu31i)
//============================================================================



static void Test_aBFu33_Ip_BFu31ll()
{
  {
    init_simple_test("aBFu33_Ip_BFu31ll");
    static STRUCT_IF_C aBFu33_Ip_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Ip_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 31, 1, "aBFu33_Ip_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 31, hide_ull(1LL<<30), "aBFu33_Ip_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu31ll, aBFu33_Ip_BFu31ll)
//============================================================================



static void Test_aBFu33_Ip_BFu32i()
{
  {
    init_simple_test("aBFu33_Ip_BFu32i");
    static STRUCT_IF_C aBFu33_Ip_BFu32i lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Ip_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 32, 1, "aBFu33_Ip_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 32, hide_ull(1LL<<31), "aBFu33_Ip_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu32i, aBFu33_Ip_BFu32i)
//============================================================================



static void Test_aBFu33_Ip_BFu32ll()
{
  {
    init_simple_test("aBFu33_Ip_BFu32ll");
    static STRUCT_IF_C aBFu33_Ip_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Ip_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 32, 1, "aBFu33_Ip_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 32, hide_ull(1LL<<31), "aBFu33_Ip_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu32ll, aBFu33_Ip_BFu32ll)
//============================================================================



static void Test_aBFu33_Ip_BFu33()
{
  {
    init_simple_test("aBFu33_Ip_BFu33");
    static STRUCT_IF_C aBFu33_Ip_BFu33 lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(aBFu33_Ip_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 33, 1, "aBFu33_Ip_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu33, aBFu33_Ip_BFu33)
//============================================================================



static void Test_aBFu33_Ip_BFu7c()
{
  {
    init_simple_test("aBFu33_Ip_BFu7c");
    static STRUCT_IF_C aBFu33_Ip_BFu7c lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, 1, "aBFu33_Ip_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, hide_ull(1LL<<6), "aBFu33_Ip_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu7c, aBFu33_Ip_BFu7c)
//============================================================================



static void Test_aBFu33_Ip_BFu7i()
{
  {
    init_simple_test("aBFu33_Ip_BFu7i");
    static STRUCT_IF_C aBFu33_Ip_BFu7i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, 1, "aBFu33_Ip_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, hide_ull(1LL<<6), "aBFu33_Ip_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu7i, aBFu33_Ip_BFu7i)
//============================================================================



static void Test_aBFu33_Ip_BFu7ll()
{
  {
    init_simple_test("aBFu33_Ip_BFu7ll");
    static STRUCT_IF_C aBFu33_Ip_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, 1, "aBFu33_Ip_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, hide_ull(1LL<<6), "aBFu33_Ip_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu7ll, aBFu33_Ip_BFu7ll)
//============================================================================



static void Test_aBFu33_Ip_BFu7s()
{
  {
    init_simple_test("aBFu33_Ip_BFu7s");
    static STRUCT_IF_C aBFu33_Ip_BFu7s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, 1, "aBFu33_Ip_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, hide_ull(1LL<<6), "aBFu33_Ip_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu7s, aBFu33_Ip_BFu7s)
//============================================================================



static void Test_aBFu33_Ip_BFu8c()
{
  {
    init_simple_test("aBFu33_Ip_BFu8c");
    static STRUCT_IF_C aBFu33_Ip_BFu8c lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, 1, "aBFu33_Ip_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, hide_ull(1LL<<7), "aBFu33_Ip_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu8c, aBFu33_Ip_BFu8c)
//============================================================================



static void Test_aBFu33_Ip_BFu8i()
{
  {
    init_simple_test("aBFu33_Ip_BFu8i");
    static STRUCT_IF_C aBFu33_Ip_BFu8i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, 1, "aBFu33_Ip_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, hide_ull(1LL<<7), "aBFu33_Ip_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu8i, aBFu33_Ip_BFu8i)
//============================================================================



static void Test_aBFu33_Ip_BFu8ll()
{
  {
    init_simple_test("aBFu33_Ip_BFu8ll");
    static STRUCT_IF_C aBFu33_Ip_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, 1, "aBFu33_Ip_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, hide_ull(1LL<<7), "aBFu33_Ip_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu8ll, aBFu33_Ip_BFu8ll)
//============================================================================



static void Test_aBFu33_Ip_BFu8s()
{
  {
    init_simple_test("aBFu33_Ip_BFu8s");
    static STRUCT_IF_C aBFu33_Ip_BFu8s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, 1, "aBFu33_Ip_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, hide_ull(1LL<<7), "aBFu33_Ip_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu8s, aBFu33_Ip_BFu8s)
//============================================================================



static void Test_aBFu33_Ip_BFu9i()
{
  {
    init_simple_test("aBFu33_Ip_BFu9i");
    static STRUCT_IF_C aBFu33_Ip_BFu9i lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Ip_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, 1, "aBFu33_Ip_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, hide_ull(1LL<<8), "aBFu33_Ip_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu9i, aBFu33_Ip_BFu9i)
//============================================================================



static void Test_aBFu33_Ip_BFu9ll()
{
  {
    init_simple_test("aBFu33_Ip_BFu9ll");
    static STRUCT_IF_C aBFu33_Ip_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Ip_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, 1, "aBFu33_Ip_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, hide_ull(1LL<<8), "aBFu33_Ip_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu9ll, aBFu33_Ip_BFu9ll)
//============================================================================



static void Test_aBFu33_Ip_BFu9s()
{
  {
    init_simple_test("aBFu33_Ip_BFu9s");
    static STRUCT_IF_C aBFu33_Ip_BFu9s lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Ip_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, 1, "aBFu33_Ip_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, hide_ull(1LL<<8), "aBFu33_Ip_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_BFu9s, aBFu33_Ip_BFu9s)
//============================================================================



static void Test_aBFu33_Ip_C()
{
  {
    init_simple_test("aBFu33_Ip_C");
    static STRUCT_IF_C aBFu33_Ip_C lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_C");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_C.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_C, aBFu33_Ip_C)
//============================================================================



static void Test_aBFu33_Ip_D()
{
  {
    init_simple_test("aBFu33_Ip_D");
    static STRUCT_IF_C aBFu33_Ip_D lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_Ip_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_D");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_D.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_D, aBFu33_Ip_D)
//============================================================================



static void Test_aBFu33_Ip_F()
{
  {
    init_simple_test("aBFu33_Ip_F");
    static STRUCT_IF_C aBFu33_Ip_F lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Ip_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_F");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_F.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_F, aBFu33_Ip_F)
//============================================================================



static void Test_aBFu33_Ip_I()
{
  {
    init_simple_test("aBFu33_Ip_I");
    static STRUCT_IF_C aBFu33_Ip_I lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Ip_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_I");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_I.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_I, aBFu33_Ip_I)
//============================================================================



static void Test_aBFu33_Ip_Ip()
{
  {
    init_simple_test("aBFu33_Ip_Ip");
    static STRUCT_IF_C aBFu33_Ip_Ip lv;
    check2(sizeof(lv), ABISELECT(21,13), "sizeof(aBFu33_Ip_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_Ip, aBFu33_Ip_Ip)
//============================================================================



static void Test_aBFu33_Ip_L()
{
  {
    init_simple_test("aBFu33_Ip_L");
    static STRUCT_IF_C aBFu33_Ip_L lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_Ip_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_L");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_L.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_L, aBFu33_Ip_L)
//============================================================================



static void Test_aBFu33_Ip_S()
{
  {
    init_simple_test("aBFu33_Ip_S");
    static STRUCT_IF_C aBFu33_Ip_S lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Ip_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_S");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_S.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_S, aBFu33_Ip_S)
//============================================================================



static void Test_aBFu33_Ip_Uc()
{
  {
    init_simple_test("aBFu33_Ip_Uc");
    static STRUCT_IF_C aBFu33_Ip_Uc lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Ip_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_Uc, aBFu33_Ip_Uc)
//============================================================================



static void Test_aBFu33_Ip_Ui()
{
  {
    init_simple_test("aBFu33_Ip_Ui");
    static STRUCT_IF_C aBFu33_Ip_Ui lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Ip_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_Ui, aBFu33_Ip_Ui)
//============================================================================



static void Test_aBFu33_Ip_Ul()
{
  {
    init_simple_test("aBFu33_Ip_Ul");
    static STRUCT_IF_C aBFu33_Ip_Ul lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_Ip_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_Ul, aBFu33_Ip_Ul)
//============================================================================



static void Test_aBFu33_Ip_Us()
{
  {
    init_simple_test("aBFu33_Ip_Us");
    static STRUCT_IF_C aBFu33_Ip_Us lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Ip_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_Us");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_Us.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_Us, aBFu33_Ip_Us)
//============================================================================



static void Test_aBFu33_Ip_Vp()
{
  {
    init_simple_test("aBFu33_Ip_Vp");
    static STRUCT_IF_C aBFu33_Ip_Vp lv;
    check2(sizeof(lv), ABISELECT(21,13), "sizeof(aBFu33_Ip_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ip_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ip_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ip_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_Ip_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Ip_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ip_Vp, aBFu33_Ip_Vp)
//============================================================================



static void Test_aBFu33_L()
{
  {
    init_simple_test("aBFu33_L");
    static STRUCT_IF_C aBFu33_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L");
    check_field_offset(lv, v2, 5, "aBFu33_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L, aBFu33_L)
//============================================================================



static void Test_aBFu33_L_BFu15i()
{
  {
    init_simple_test("aBFu33_L_BFu15i");
    static STRUCT_IF_C aBFu33_L_BFu15i lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_L_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu15i.v2");
    set_bf_and_test(lv, v3, 13, 0, 15, 1, "aBFu33_L_BFu15i");
    set_bf_and_test(lv, v3, 13, 0, 15, hide_ull(1LL<<14), "aBFu33_L_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu15i, aBFu33_L_BFu15i)
//============================================================================



static void Test_aBFu33_L_BFu15ll()
{
  {
    init_simple_test("aBFu33_L_BFu15ll");
    static STRUCT_IF_C aBFu33_L_BFu15ll lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_L_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu15ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 15, 1, "aBFu33_L_BFu15ll");
    set_bf_and_test(lv, v3, 13, 0, 15, hide_ull(1LL<<14), "aBFu33_L_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu15ll, aBFu33_L_BFu15ll)
//============================================================================



static void Test_aBFu33_L_BFu15s()
{
  {
    init_simple_test("aBFu33_L_BFu15s");
    static STRUCT_IF_C aBFu33_L_BFu15s lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_L_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu15s.v2");
    set_bf_and_test(lv, v3, 13, 0, 15, 1, "aBFu33_L_BFu15s");
    set_bf_and_test(lv, v3, 13, 0, 15, hide_ull(1LL<<14), "aBFu33_L_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu15s, aBFu33_L_BFu15s)
//============================================================================



static void Test_aBFu33_L_BFu16i()
{
  {
    init_simple_test("aBFu33_L_BFu16i");
    static STRUCT_IF_C aBFu33_L_BFu16i lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_L_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu16i.v2");
    set_bf_and_test(lv, v3, 13, 0, 16, 1, "aBFu33_L_BFu16i");
    set_bf_and_test(lv, v3, 13, 0, 16, hide_ull(1LL<<15), "aBFu33_L_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu16i, aBFu33_L_BFu16i)
//============================================================================



static void Test_aBFu33_L_BFu16ll()
{
  {
    init_simple_test("aBFu33_L_BFu16ll");
    static STRUCT_IF_C aBFu33_L_BFu16ll lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_L_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu16ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 16, 1, "aBFu33_L_BFu16ll");
    set_bf_and_test(lv, v3, 13, 0, 16, hide_ull(1LL<<15), "aBFu33_L_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu16ll, aBFu33_L_BFu16ll)
//============================================================================



static void Test_aBFu33_L_BFu16s()
{
  {
    init_simple_test("aBFu33_L_BFu16s");
    static STRUCT_IF_C aBFu33_L_BFu16s lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_L_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu16s.v2");
    set_bf_and_test(lv, v3, 13, 0, 16, 1, "aBFu33_L_BFu16s");
    set_bf_and_test(lv, v3, 13, 0, 16, hide_ull(1LL<<15), "aBFu33_L_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu16s, aBFu33_L_BFu16s)
//============================================================================



static void Test_aBFu33_L_BFu17i()
{
  {
    init_simple_test("aBFu33_L_BFu17i");
    static STRUCT_IF_C aBFu33_L_BFu17i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_L_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu17i.v2");
    set_bf_and_test(lv, v3, 13, 0, 17, 1, "aBFu33_L_BFu17i");
    set_bf_and_test(lv, v3, 13, 0, 17, hide_ull(1LL<<16), "aBFu33_L_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu17i, aBFu33_L_BFu17i)
//============================================================================



static void Test_aBFu33_L_BFu17ll()
{
  {
    init_simple_test("aBFu33_L_BFu17ll");
    static STRUCT_IF_C aBFu33_L_BFu17ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_L_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu17ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 17, 1, "aBFu33_L_BFu17ll");
    set_bf_and_test(lv, v3, 13, 0, 17, hide_ull(1LL<<16), "aBFu33_L_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu17ll, aBFu33_L_BFu17ll)
//============================================================================



static void Test_aBFu33_L_BFu1c()
{
  {
    init_simple_test("aBFu33_L_BFu1c");
    static STRUCT_IF_C aBFu33_L_BFu1c lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu1c.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_L_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu1c, aBFu33_L_BFu1c)
//============================================================================



static void Test_aBFu33_L_BFu1i()
{
  {
    init_simple_test("aBFu33_L_BFu1i");
    static STRUCT_IF_C aBFu33_L_BFu1i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu1i.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_L_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu1i, aBFu33_L_BFu1i)
//============================================================================



static void Test_aBFu33_L_BFu1ll()
{
  {
    init_simple_test("aBFu33_L_BFu1ll");
    static STRUCT_IF_C aBFu33_L_BFu1ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu1ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_L_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu1ll, aBFu33_L_BFu1ll)
//============================================================================



static void Test_aBFu33_L_BFu1s()
{
  {
    init_simple_test("aBFu33_L_BFu1s");
    static STRUCT_IF_C aBFu33_L_BFu1s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu1s.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_L_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu1s, aBFu33_L_BFu1s)
//============================================================================



static void Test_aBFu33_L_BFu31i()
{
  {
    init_simple_test("aBFu33_L_BFu31i");
    static STRUCT_IF_C aBFu33_L_BFu31i lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_L_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu31i.v2");
    set_bf_and_test(lv, v3, 13, 0, 31, 1, "aBFu33_L_BFu31i");
    set_bf_and_test(lv, v3, 13, 0, 31, hide_ull(1LL<<30), "aBFu33_L_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu31i, aBFu33_L_BFu31i)
//============================================================================



static void Test_aBFu33_L_BFu31ll()
{
  {
    init_simple_test("aBFu33_L_BFu31ll");
    static STRUCT_IF_C aBFu33_L_BFu31ll lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_L_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu31ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 31, 1, "aBFu33_L_BFu31ll");
    set_bf_and_test(lv, v3, 13, 0, 31, hide_ull(1LL<<30), "aBFu33_L_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu31ll, aBFu33_L_BFu31ll)
//============================================================================



static void Test_aBFu33_L_BFu32i()
{
  {
    init_simple_test("aBFu33_L_BFu32i");
    static STRUCT_IF_C aBFu33_L_BFu32i lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_L_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu32i.v2");
    set_bf_and_test(lv, v3, 13, 0, 32, 1, "aBFu33_L_BFu32i");
    set_bf_and_test(lv, v3, 13, 0, 32, hide_ull(1LL<<31), "aBFu33_L_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu32i, aBFu33_L_BFu32i)
//============================================================================



static void Test_aBFu33_L_BFu32ll()
{
  {
    init_simple_test("aBFu33_L_BFu32ll");
    static STRUCT_IF_C aBFu33_L_BFu32ll lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_L_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu32ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 32, 1, "aBFu33_L_BFu32ll");
    set_bf_and_test(lv, v3, 13, 0, 32, hide_ull(1LL<<31), "aBFu33_L_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu32ll, aBFu33_L_BFu32ll)
//============================================================================



static void Test_aBFu33_L_BFu33()
{
  {
    init_simple_test("aBFu33_L_BFu33");
    static STRUCT_IF_C aBFu33_L_BFu33 lv;
    check2(sizeof(lv), 18, "sizeof(aBFu33_L_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu33.v2");
    set_bf_and_test(lv, v3, 13, 0, 33, 1, "aBFu33_L_BFu33");
    set_bf_and_test(lv, v3, 13, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu33, aBFu33_L_BFu33)
//============================================================================



static void Test_aBFu33_L_BFu7c()
{
  {
    init_simple_test("aBFu33_L_BFu7c");
    static STRUCT_IF_C aBFu33_L_BFu7c lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu7c.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_L_BFu7c");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_L_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu7c, aBFu33_L_BFu7c)
//============================================================================



static void Test_aBFu33_L_BFu7i()
{
  {
    init_simple_test("aBFu33_L_BFu7i");
    static STRUCT_IF_C aBFu33_L_BFu7i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu7i.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_L_BFu7i");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_L_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu7i, aBFu33_L_BFu7i)
//============================================================================



static void Test_aBFu33_L_BFu7ll()
{
  {
    init_simple_test("aBFu33_L_BFu7ll");
    static STRUCT_IF_C aBFu33_L_BFu7ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu7ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_L_BFu7ll");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_L_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu7ll, aBFu33_L_BFu7ll)
//============================================================================



static void Test_aBFu33_L_BFu7s()
{
  {
    init_simple_test("aBFu33_L_BFu7s");
    static STRUCT_IF_C aBFu33_L_BFu7s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu7s.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_L_BFu7s");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_L_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu7s, aBFu33_L_BFu7s)
//============================================================================



static void Test_aBFu33_L_BFu8c()
{
  {
    init_simple_test("aBFu33_L_BFu8c");
    static STRUCT_IF_C aBFu33_L_BFu8c lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu8c.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_L_BFu8c");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_L_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu8c, aBFu33_L_BFu8c)
//============================================================================



static void Test_aBFu33_L_BFu8i()
{
  {
    init_simple_test("aBFu33_L_BFu8i");
    static STRUCT_IF_C aBFu33_L_BFu8i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu8i.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_L_BFu8i");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_L_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu8i, aBFu33_L_BFu8i)
//============================================================================



static void Test_aBFu33_L_BFu8ll()
{
  {
    init_simple_test("aBFu33_L_BFu8ll");
    static STRUCT_IF_C aBFu33_L_BFu8ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu8ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_L_BFu8ll");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_L_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu8ll, aBFu33_L_BFu8ll)
//============================================================================



static void Test_aBFu33_L_BFu8s()
{
  {
    init_simple_test("aBFu33_L_BFu8s");
    static STRUCT_IF_C aBFu33_L_BFu8s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu8s.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_L_BFu8s");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_L_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu8s, aBFu33_L_BFu8s)
//============================================================================



static void Test_aBFu33_L_BFu9i()
{
  {
    init_simple_test("aBFu33_L_BFu9i");
    static STRUCT_IF_C aBFu33_L_BFu9i lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_L_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu9i.v2");
    set_bf_and_test(lv, v3, 13, 0, 9, 1, "aBFu33_L_BFu9i");
    set_bf_and_test(lv, v3, 13, 0, 9, hide_ull(1LL<<8), "aBFu33_L_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu9i, aBFu33_L_BFu9i)
//============================================================================



static void Test_aBFu33_L_BFu9ll()
{
  {
    init_simple_test("aBFu33_L_BFu9ll");
    static STRUCT_IF_C aBFu33_L_BFu9ll lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_L_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu9ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 9, 1, "aBFu33_L_BFu9ll");
    set_bf_and_test(lv, v3, 13, 0, 9, hide_ull(1LL<<8), "aBFu33_L_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu9ll, aBFu33_L_BFu9ll)
//============================================================================



static void Test_aBFu33_L_BFu9s()
{
  {
    init_simple_test("aBFu33_L_BFu9s");
    static STRUCT_IF_C aBFu33_L_BFu9s lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_L_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_L_BFu9s.v2");
    set_bf_and_test(lv, v3, 13, 0, 9, 1, "aBFu33_L_BFu9s");
    set_bf_and_test(lv, v3, 13, 0, 9, hide_ull(1LL<<8), "aBFu33_L_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_BFu9s, aBFu33_L_BFu9s)
//============================================================================



static void Test_aBFu33_L_C()
{
  {
    init_simple_test("aBFu33_L_C");
    static STRUCT_IF_C aBFu33_L_C lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_C");
    check_field_offset(lv, v2, 5, "aBFu33_L_C.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_C, aBFu33_L_C)
//============================================================================



static void Test_aBFu33_L_D()
{
  {
    init_simple_test("aBFu33_L_D");
    static STRUCT_IF_C aBFu33_L_D lv;
    check2(sizeof(lv), 21, "sizeof(aBFu33_L_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_D");
    check_field_offset(lv, v2, 5, "aBFu33_L_D.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_D, aBFu33_L_D)
//============================================================================



static void Test_aBFu33_L_F()
{
  {
    init_simple_test("aBFu33_L_F");
    static STRUCT_IF_C aBFu33_L_F lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_L_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_F");
    check_field_offset(lv, v2, 5, "aBFu33_L_F.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_F, aBFu33_L_F)
//============================================================================



static void Test_aBFu33_L_I()
{
  {
    init_simple_test("aBFu33_L_I");
    static STRUCT_IF_C aBFu33_L_I lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_L_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_I");
    check_field_offset(lv, v2, 5, "aBFu33_L_I.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_I, aBFu33_L_I)
//============================================================================



static void Test_aBFu33_L_Ip()
{
  {
    init_simple_test("aBFu33_L_Ip");
    static STRUCT_IF_C aBFu33_L_Ip lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_L_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_L_Ip.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_Ip, aBFu33_L_Ip)
//============================================================================



static void Test_aBFu33_L_L()
{
  {
    init_simple_test("aBFu33_L_L");
    static STRUCT_IF_C aBFu33_L_L lv;
    check2(sizeof(lv), 21, "sizeof(aBFu33_L_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_L");
    check_field_offset(lv, v2, 5, "aBFu33_L_L.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_L, aBFu33_L_L)
//============================================================================



static void Test_aBFu33_L_S()
{
  {
    init_simple_test("aBFu33_L_S");
    static STRUCT_IF_C aBFu33_L_S lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_L_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_S");
    check_field_offset(lv, v2, 5, "aBFu33_L_S.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_S, aBFu33_L_S)
//============================================================================



static void Test_aBFu33_L_Uc()
{
  {
    init_simple_test("aBFu33_L_Uc");
    static STRUCT_IF_C aBFu33_L_Uc lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_L_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_L_Uc.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_Uc, aBFu33_L_Uc)
//============================================================================



static void Test_aBFu33_L_Ui()
{
  {
    init_simple_test("aBFu33_L_Ui");
    static STRUCT_IF_C aBFu33_L_Ui lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_L_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_L_Ui.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_Ui, aBFu33_L_Ui)
//============================================================================



static void Test_aBFu33_L_Ul()
{
  {
    init_simple_test("aBFu33_L_Ul");
    static STRUCT_IF_C aBFu33_L_Ul lv;
    check2(sizeof(lv), 21, "sizeof(aBFu33_L_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_L_Ul.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_Ul, aBFu33_L_Ul)
//============================================================================



static void Test_aBFu33_L_Us()
{
  {
    init_simple_test("aBFu33_L_Us");
    static STRUCT_IF_C aBFu33_L_Us lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_L_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_Us");
    check_field_offset(lv, v2, 5, "aBFu33_L_Us.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_Us, aBFu33_L_Us)
//============================================================================



static void Test_aBFu33_L_Vp()
{
  {
    init_simple_test("aBFu33_L_Vp");
    static STRUCT_IF_C aBFu33_L_Vp lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_L_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_L_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_L_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_L_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_L_Vp.v2");
    check_field_offset(lv, v3, 13, "aBFu33_L_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_L_Vp, aBFu33_L_Vp)
//============================================================================



static void Test_aBFu33_S()
{
  {
    init_simple_test("aBFu33_S");
    static STRUCT_IF_C aBFu33_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S");
    check_field_offset(lv, v2, 5, "aBFu33_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S, aBFu33_S)
//============================================================================



static void Test_aBFu33_S_BFu15i()
{
  {
    init_simple_test("aBFu33_S_BFu15i");
    static STRUCT_IF_C aBFu33_S_BFu15i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_S_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu15i.v2");
    set_bf_and_test(lv, v3, 7, 0, 15, 1, "aBFu33_S_BFu15i");
    set_bf_and_test(lv, v3, 7, 0, 15, hide_ull(1LL<<14), "aBFu33_S_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu15i, aBFu33_S_BFu15i)
//============================================================================



static void Test_aBFu33_S_BFu15ll()
{
  {
    init_simple_test("aBFu33_S_BFu15ll");
    static STRUCT_IF_C aBFu33_S_BFu15ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_S_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu15ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 15, 1, "aBFu33_S_BFu15ll");
    set_bf_and_test(lv, v3, 7, 0, 15, hide_ull(1LL<<14), "aBFu33_S_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu15ll, aBFu33_S_BFu15ll)
//============================================================================



static void Test_aBFu33_S_BFu15s()
{
  {
    init_simple_test("aBFu33_S_BFu15s");
    static STRUCT_IF_C aBFu33_S_BFu15s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_S_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu15s.v2");
    set_bf_and_test(lv, v3, 7, 0, 15, 1, "aBFu33_S_BFu15s");
    set_bf_and_test(lv, v3, 7, 0, 15, hide_ull(1LL<<14), "aBFu33_S_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu15s, aBFu33_S_BFu15s)
//============================================================================



static void Test_aBFu33_S_BFu16i()
{
  {
    init_simple_test("aBFu33_S_BFu16i");
    static STRUCT_IF_C aBFu33_S_BFu16i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_S_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu16i.v2");
    set_bf_and_test(lv, v3, 7, 0, 16, 1, "aBFu33_S_BFu16i");
    set_bf_and_test(lv, v3, 7, 0, 16, hide_ull(1LL<<15), "aBFu33_S_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu16i, aBFu33_S_BFu16i)
//============================================================================



static void Test_aBFu33_S_BFu16ll()
{
  {
    init_simple_test("aBFu33_S_BFu16ll");
    static STRUCT_IF_C aBFu33_S_BFu16ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_S_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu16ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 16, 1, "aBFu33_S_BFu16ll");
    set_bf_and_test(lv, v3, 7, 0, 16, hide_ull(1LL<<15), "aBFu33_S_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu16ll, aBFu33_S_BFu16ll)
//============================================================================



static void Test_aBFu33_S_BFu16s()
{
  {
    init_simple_test("aBFu33_S_BFu16s");
    static STRUCT_IF_C aBFu33_S_BFu16s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_S_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu16s.v2");
    set_bf_and_test(lv, v3, 7, 0, 16, 1, "aBFu33_S_BFu16s");
    set_bf_and_test(lv, v3, 7, 0, 16, hide_ull(1LL<<15), "aBFu33_S_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu16s, aBFu33_S_BFu16s)
//============================================================================



static void Test_aBFu33_S_BFu17i()
{
  {
    init_simple_test("aBFu33_S_BFu17i");
    static STRUCT_IF_C aBFu33_S_BFu17i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_S_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu17i.v2");
    set_bf_and_test(lv, v3, 7, 0, 17, 1, "aBFu33_S_BFu17i");
    set_bf_and_test(lv, v3, 7, 0, 17, hide_ull(1LL<<16), "aBFu33_S_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu17i, aBFu33_S_BFu17i)
//============================================================================



static void Test_aBFu33_S_BFu17ll()
{
  {
    init_simple_test("aBFu33_S_BFu17ll");
    static STRUCT_IF_C aBFu33_S_BFu17ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_S_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu17ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 17, 1, "aBFu33_S_BFu17ll");
    set_bf_and_test(lv, v3, 7, 0, 17, hide_ull(1LL<<16), "aBFu33_S_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu17ll, aBFu33_S_BFu17ll)
//============================================================================



static void Test_aBFu33_S_BFu1c()
{
  {
    init_simple_test("aBFu33_S_BFu1c");
    static STRUCT_IF_C aBFu33_S_BFu1c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu1c.v2");
    set_bf_and_test(lv, v3, 7, 0, 1, 1, "aBFu33_S_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu1c, aBFu33_S_BFu1c)
//============================================================================



static void Test_aBFu33_S_BFu1i()
{
  {
    init_simple_test("aBFu33_S_BFu1i");
    static STRUCT_IF_C aBFu33_S_BFu1i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu1i.v2");
    set_bf_and_test(lv, v3, 7, 0, 1, 1, "aBFu33_S_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu1i, aBFu33_S_BFu1i)
//============================================================================



static void Test_aBFu33_S_BFu1ll()
{
  {
    init_simple_test("aBFu33_S_BFu1ll");
    static STRUCT_IF_C aBFu33_S_BFu1ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu1ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 1, 1, "aBFu33_S_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu1ll, aBFu33_S_BFu1ll)
//============================================================================



static void Test_aBFu33_S_BFu1s()
{
  {
    init_simple_test("aBFu33_S_BFu1s");
    static STRUCT_IF_C aBFu33_S_BFu1s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu1s.v2");
    set_bf_and_test(lv, v3, 7, 0, 1, 1, "aBFu33_S_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu1s, aBFu33_S_BFu1s)
//============================================================================



static void Test_aBFu33_S_BFu31i()
{
  {
    init_simple_test("aBFu33_S_BFu31i");
    static STRUCT_IF_C aBFu33_S_BFu31i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_S_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu31i.v2");
    set_bf_and_test(lv, v3, 7, 0, 31, 1, "aBFu33_S_BFu31i");
    set_bf_and_test(lv, v3, 7, 0, 31, hide_ull(1LL<<30), "aBFu33_S_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu31i, aBFu33_S_BFu31i)
//============================================================================



static void Test_aBFu33_S_BFu31ll()
{
  {
    init_simple_test("aBFu33_S_BFu31ll");
    static STRUCT_IF_C aBFu33_S_BFu31ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_S_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu31ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 31, 1, "aBFu33_S_BFu31ll");
    set_bf_and_test(lv, v3, 7, 0, 31, hide_ull(1LL<<30), "aBFu33_S_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu31ll, aBFu33_S_BFu31ll)
//============================================================================



static void Test_aBFu33_S_BFu32i()
{
  {
    init_simple_test("aBFu33_S_BFu32i");
    static STRUCT_IF_C aBFu33_S_BFu32i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_S_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu32i.v2");
    set_bf_and_test(lv, v3, 7, 0, 32, 1, "aBFu33_S_BFu32i");
    set_bf_and_test(lv, v3, 7, 0, 32, hide_ull(1LL<<31), "aBFu33_S_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu32i, aBFu33_S_BFu32i)
//============================================================================



static void Test_aBFu33_S_BFu32ll()
{
  {
    init_simple_test("aBFu33_S_BFu32ll");
    static STRUCT_IF_C aBFu33_S_BFu32ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_S_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu32ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 32, 1, "aBFu33_S_BFu32ll");
    set_bf_and_test(lv, v3, 7, 0, 32, hide_ull(1LL<<31), "aBFu33_S_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu32ll, aBFu33_S_BFu32ll)
//============================================================================



static void Test_aBFu33_S_BFu33()
{
  {
    init_simple_test("aBFu33_S_BFu33");
    static STRUCT_IF_C aBFu33_S_BFu33 lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_S_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu33.v2");
    set_bf_and_test(lv, v3, 7, 0, 33, 1, "aBFu33_S_BFu33");
    set_bf_and_test(lv, v3, 7, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu33, aBFu33_S_BFu33)
//============================================================================



static void Test_aBFu33_S_BFu7c()
{
  {
    init_simple_test("aBFu33_S_BFu7c");
    static STRUCT_IF_C aBFu33_S_BFu7c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu7c.v2");
    set_bf_and_test(lv, v3, 7, 0, 7, 1, "aBFu33_S_BFu7c");
    set_bf_and_test(lv, v3, 7, 0, 7, hide_ull(1LL<<6), "aBFu33_S_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu7c, aBFu33_S_BFu7c)
//============================================================================



static void Test_aBFu33_S_BFu7i()
{
  {
    init_simple_test("aBFu33_S_BFu7i");
    static STRUCT_IF_C aBFu33_S_BFu7i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu7i.v2");
    set_bf_and_test(lv, v3, 7, 0, 7, 1, "aBFu33_S_BFu7i");
    set_bf_and_test(lv, v3, 7, 0, 7, hide_ull(1LL<<6), "aBFu33_S_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu7i, aBFu33_S_BFu7i)
//============================================================================



static void Test_aBFu33_S_BFu7ll()
{
  {
    init_simple_test("aBFu33_S_BFu7ll");
    static STRUCT_IF_C aBFu33_S_BFu7ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu7ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 7, 1, "aBFu33_S_BFu7ll");
    set_bf_and_test(lv, v3, 7, 0, 7, hide_ull(1LL<<6), "aBFu33_S_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu7ll, aBFu33_S_BFu7ll)
//============================================================================



static void Test_aBFu33_S_BFu7s()
{
  {
    init_simple_test("aBFu33_S_BFu7s");
    static STRUCT_IF_C aBFu33_S_BFu7s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu7s.v2");
    set_bf_and_test(lv, v3, 7, 0, 7, 1, "aBFu33_S_BFu7s");
    set_bf_and_test(lv, v3, 7, 0, 7, hide_ull(1LL<<6), "aBFu33_S_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu7s, aBFu33_S_BFu7s)
//============================================================================



static void Test_aBFu33_S_BFu8c()
{
  {
    init_simple_test("aBFu33_S_BFu8c");
    static STRUCT_IF_C aBFu33_S_BFu8c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu8c.v2");
    set_bf_and_test(lv, v3, 7, 0, 8, 1, "aBFu33_S_BFu8c");
    set_bf_and_test(lv, v3, 7, 0, 8, hide_ull(1LL<<7), "aBFu33_S_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu8c, aBFu33_S_BFu8c)
//============================================================================



static void Test_aBFu33_S_BFu8i()
{
  {
    init_simple_test("aBFu33_S_BFu8i");
    static STRUCT_IF_C aBFu33_S_BFu8i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu8i.v2");
    set_bf_and_test(lv, v3, 7, 0, 8, 1, "aBFu33_S_BFu8i");
    set_bf_and_test(lv, v3, 7, 0, 8, hide_ull(1LL<<7), "aBFu33_S_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu8i, aBFu33_S_BFu8i)
//============================================================================



static void Test_aBFu33_S_BFu8ll()
{
  {
    init_simple_test("aBFu33_S_BFu8ll");
    static STRUCT_IF_C aBFu33_S_BFu8ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu8ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 8, 1, "aBFu33_S_BFu8ll");
    set_bf_and_test(lv, v3, 7, 0, 8, hide_ull(1LL<<7), "aBFu33_S_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu8ll, aBFu33_S_BFu8ll)
//============================================================================



static void Test_aBFu33_S_BFu8s()
{
  {
    init_simple_test("aBFu33_S_BFu8s");
    static STRUCT_IF_C aBFu33_S_BFu8s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu8s.v2");
    set_bf_and_test(lv, v3, 7, 0, 8, 1, "aBFu33_S_BFu8s");
    set_bf_and_test(lv, v3, 7, 0, 8, hide_ull(1LL<<7), "aBFu33_S_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu8s, aBFu33_S_BFu8s)
//============================================================================



static void Test_aBFu33_S_BFu9i()
{
  {
    init_simple_test("aBFu33_S_BFu9i");
    static STRUCT_IF_C aBFu33_S_BFu9i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_S_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu9i.v2");
    set_bf_and_test(lv, v3, 7, 0, 9, 1, "aBFu33_S_BFu9i");
    set_bf_and_test(lv, v3, 7, 0, 9, hide_ull(1LL<<8), "aBFu33_S_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu9i, aBFu33_S_BFu9i)
//============================================================================



static void Test_aBFu33_S_BFu9ll()
{
  {
    init_simple_test("aBFu33_S_BFu9ll");
    static STRUCT_IF_C aBFu33_S_BFu9ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_S_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu9ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 9, 1, "aBFu33_S_BFu9ll");
    set_bf_and_test(lv, v3, 7, 0, 9, hide_ull(1LL<<8), "aBFu33_S_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu9ll, aBFu33_S_BFu9ll)
//============================================================================



static void Test_aBFu33_S_BFu9s()
{
  {
    init_simple_test("aBFu33_S_BFu9s");
    static STRUCT_IF_C aBFu33_S_BFu9s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_S_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_S_BFu9s.v2");
    set_bf_and_test(lv, v3, 7, 0, 9, 1, "aBFu33_S_BFu9s");
    set_bf_and_test(lv, v3, 7, 0, 9, hide_ull(1LL<<8), "aBFu33_S_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_BFu9s, aBFu33_S_BFu9s)
//============================================================================



static void Test_aBFu33_S_C()
{
  {
    init_simple_test("aBFu33_S_C");
    static STRUCT_IF_C aBFu33_S_C lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_C");
    check_field_offset(lv, v2, 5, "aBFu33_S_C.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_C, aBFu33_S_C)
//============================================================================



static void Test_aBFu33_S_D()
{
  {
    init_simple_test("aBFu33_S_D");
    static STRUCT_IF_C aBFu33_S_D lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_S_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_D");
    check_field_offset(lv, v2, 5, "aBFu33_S_D.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_D, aBFu33_S_D)
//============================================================================



static void Test_aBFu33_S_F()
{
  {
    init_simple_test("aBFu33_S_F");
    static STRUCT_IF_C aBFu33_S_F lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_S_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_F");
    check_field_offset(lv, v2, 5, "aBFu33_S_F.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_F, aBFu33_S_F)
//============================================================================



static void Test_aBFu33_S_I()
{
  {
    init_simple_test("aBFu33_S_I");
    static STRUCT_IF_C aBFu33_S_I lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_S_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_I");
    check_field_offset(lv, v2, 5, "aBFu33_S_I.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_I, aBFu33_S_I)
//============================================================================



static void Test_aBFu33_S_Ip()
{
  {
    init_simple_test("aBFu33_S_Ip");
    static STRUCT_IF_C aBFu33_S_Ip lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_S_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_S_Ip.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_Ip, aBFu33_S_Ip)
//============================================================================



static void Test_aBFu33_S_L()
{
  {
    init_simple_test("aBFu33_S_L");
    static STRUCT_IF_C aBFu33_S_L lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_S_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_L");
    check_field_offset(lv, v2, 5, "aBFu33_S_L.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_L, aBFu33_S_L)
//============================================================================



static void Test_aBFu33_S_S()
{
  {
    init_simple_test("aBFu33_S_S");
    static STRUCT_IF_C aBFu33_S_S lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_S_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_S");
    check_field_offset(lv, v2, 5, "aBFu33_S_S.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_S, aBFu33_S_S)
//============================================================================



static void Test_aBFu33_S_Uc()
{
  {
    init_simple_test("aBFu33_S_Uc");
    static STRUCT_IF_C aBFu33_S_Uc lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_S_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_S_Uc.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_Uc, aBFu33_S_Uc)
//============================================================================



static void Test_aBFu33_S_Ui()
{
  {
    init_simple_test("aBFu33_S_Ui");
    static STRUCT_IF_C aBFu33_S_Ui lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_S_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_S_Ui.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_Ui, aBFu33_S_Ui)
//============================================================================



static void Test_aBFu33_S_Ul()
{
  {
    init_simple_test("aBFu33_S_Ul");
    static STRUCT_IF_C aBFu33_S_Ul lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_S_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_S_Ul.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_Ul, aBFu33_S_Ul)
//============================================================================



static void Test_aBFu33_S_Us()
{
  {
    init_simple_test("aBFu33_S_Us");
    static STRUCT_IF_C aBFu33_S_Us lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_S_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_Us");
    check_field_offset(lv, v2, 5, "aBFu33_S_Us.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_Us, aBFu33_S_Us)
//============================================================================



static void Test_aBFu33_S_Vp()
{
  {
    init_simple_test("aBFu33_S_Vp");
    static STRUCT_IF_C aBFu33_S_Vp lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_S_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_S_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_S_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_S_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_S_Vp.v2");
    check_field_offset(lv, v3, 7, "aBFu33_S_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_S_Vp, aBFu33_S_Vp)
//============================================================================



static void Test_aBFu33_Uc()
{
  {
    init_simple_test("aBFu33_Uc");
    static STRUCT_IF_C aBFu33_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu33_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc, aBFu33_Uc)
//============================================================================



static void Test_aBFu33_Uc_BFu15i()
{
  {
    init_simple_test("aBFu33_Uc_BFu15i");
    static STRUCT_IF_C aBFu33_Uc_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Uc_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu15i.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_Uc_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_Uc_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu15i, aBFu33_Uc_BFu15i)
//============================================================================



static void Test_aBFu33_Uc_BFu15ll()
{
  {
    init_simple_test("aBFu33_Uc_BFu15ll");
    static STRUCT_IF_C aBFu33_Uc_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Uc_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu15ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_Uc_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_Uc_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu15ll, aBFu33_Uc_BFu15ll)
//============================================================================



static void Test_aBFu33_Uc_BFu15s()
{
  {
    init_simple_test("aBFu33_Uc_BFu15s");
    static STRUCT_IF_C aBFu33_Uc_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Uc_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu15s.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "aBFu33_Uc_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "aBFu33_Uc_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu15s, aBFu33_Uc_BFu15s)
//============================================================================



static void Test_aBFu33_Uc_BFu16i()
{
  {
    init_simple_test("aBFu33_Uc_BFu16i");
    static STRUCT_IF_C aBFu33_Uc_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Uc_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu16i.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_Uc_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_Uc_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu16i, aBFu33_Uc_BFu16i)
//============================================================================



static void Test_aBFu33_Uc_BFu16ll()
{
  {
    init_simple_test("aBFu33_Uc_BFu16ll");
    static STRUCT_IF_C aBFu33_Uc_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Uc_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu16ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_Uc_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_Uc_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu16ll, aBFu33_Uc_BFu16ll)
//============================================================================



static void Test_aBFu33_Uc_BFu16s()
{
  {
    init_simple_test("aBFu33_Uc_BFu16s");
    static STRUCT_IF_C aBFu33_Uc_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Uc_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu16s.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "aBFu33_Uc_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "aBFu33_Uc_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu16s, aBFu33_Uc_BFu16s)
//============================================================================



static void Test_aBFu33_Uc_BFu17i()
{
  {
    init_simple_test("aBFu33_Uc_BFu17i");
    static STRUCT_IF_C aBFu33_Uc_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Uc_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu17i.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu33_Uc_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu33_Uc_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu17i, aBFu33_Uc_BFu17i)
//============================================================================



static void Test_aBFu33_Uc_BFu17ll()
{
  {
    init_simple_test("aBFu33_Uc_BFu17ll");
    static STRUCT_IF_C aBFu33_Uc_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Uc_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu17ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "aBFu33_Uc_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "aBFu33_Uc_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu17ll, aBFu33_Uc_BFu17ll)
//============================================================================



static void Test_aBFu33_Uc_BFu1c()
{
  {
    init_simple_test("aBFu33_Uc_BFu1c");
    static STRUCT_IF_C aBFu33_Uc_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu1c.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_Uc_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu1c, aBFu33_Uc_BFu1c)
//============================================================================



static void Test_aBFu33_Uc_BFu1i()
{
  {
    init_simple_test("aBFu33_Uc_BFu1i");
    static STRUCT_IF_C aBFu33_Uc_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu1i.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_Uc_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu1i, aBFu33_Uc_BFu1i)
//============================================================================



static void Test_aBFu33_Uc_BFu1ll()
{
  {
    init_simple_test("aBFu33_Uc_BFu1ll");
    static STRUCT_IF_C aBFu33_Uc_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu1ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_Uc_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu1ll, aBFu33_Uc_BFu1ll)
//============================================================================



static void Test_aBFu33_Uc_BFu1s()
{
  {
    init_simple_test("aBFu33_Uc_BFu1s");
    static STRUCT_IF_C aBFu33_Uc_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu1s.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "aBFu33_Uc_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu1s, aBFu33_Uc_BFu1s)
//============================================================================



static void Test_aBFu33_Uc_BFu31i()
{
  {
    init_simple_test("aBFu33_Uc_BFu31i");
    static STRUCT_IF_C aBFu33_Uc_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Uc_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu31i.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu33_Uc_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu33_Uc_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu31i, aBFu33_Uc_BFu31i)
//============================================================================



static void Test_aBFu33_Uc_BFu31ll()
{
  {
    init_simple_test("aBFu33_Uc_BFu31ll");
    static STRUCT_IF_C aBFu33_Uc_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Uc_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu31ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "aBFu33_Uc_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "aBFu33_Uc_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu31ll, aBFu33_Uc_BFu31ll)
//============================================================================



static void Test_aBFu33_Uc_BFu32i()
{
  {
    init_simple_test("aBFu33_Uc_BFu32i");
    static STRUCT_IF_C aBFu33_Uc_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Uc_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu32i.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu33_Uc_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu33_Uc_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu32i, aBFu33_Uc_BFu32i)
//============================================================================



static void Test_aBFu33_Uc_BFu32ll()
{
  {
    init_simple_test("aBFu33_Uc_BFu32ll");
    static STRUCT_IF_C aBFu33_Uc_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Uc_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu32ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "aBFu33_Uc_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "aBFu33_Uc_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu32ll, aBFu33_Uc_BFu32ll)
//============================================================================



static void Test_aBFu33_Uc_BFu33()
{
  {
    init_simple_test("aBFu33_Uc_BFu33");
    static STRUCT_IF_C aBFu33_Uc_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Uc_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu33.v2");
    set_bf_and_test(lv, v3, 6, 0, 33, 1, "aBFu33_Uc_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu33, aBFu33_Uc_BFu33)
//============================================================================



static void Test_aBFu33_Uc_BFu7c()
{
  {
    init_simple_test("aBFu33_Uc_BFu7c");
    static STRUCT_IF_C aBFu33_Uc_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu7c.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_Uc_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_Uc_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu7c, aBFu33_Uc_BFu7c)
//============================================================================



static void Test_aBFu33_Uc_BFu7i()
{
  {
    init_simple_test("aBFu33_Uc_BFu7i");
    static STRUCT_IF_C aBFu33_Uc_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu7i.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_Uc_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_Uc_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu7i, aBFu33_Uc_BFu7i)
//============================================================================



static void Test_aBFu33_Uc_BFu7ll()
{
  {
    init_simple_test("aBFu33_Uc_BFu7ll");
    static STRUCT_IF_C aBFu33_Uc_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu7ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_Uc_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_Uc_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu7ll, aBFu33_Uc_BFu7ll)
//============================================================================



static void Test_aBFu33_Uc_BFu7s()
{
  {
    init_simple_test("aBFu33_Uc_BFu7s");
    static STRUCT_IF_C aBFu33_Uc_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu7s.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "aBFu33_Uc_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "aBFu33_Uc_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu7s, aBFu33_Uc_BFu7s)
//============================================================================



static void Test_aBFu33_Uc_BFu8c()
{
  {
    init_simple_test("aBFu33_Uc_BFu8c");
    static STRUCT_IF_C aBFu33_Uc_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu8c.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_Uc_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_Uc_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu8c, aBFu33_Uc_BFu8c)
//============================================================================



static void Test_aBFu33_Uc_BFu8i()
{
  {
    init_simple_test("aBFu33_Uc_BFu8i");
    static STRUCT_IF_C aBFu33_Uc_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu8i.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_Uc_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_Uc_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu8i, aBFu33_Uc_BFu8i)
//============================================================================



static void Test_aBFu33_Uc_BFu8ll()
{
  {
    init_simple_test("aBFu33_Uc_BFu8ll");
    static STRUCT_IF_C aBFu33_Uc_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu8ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_Uc_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_Uc_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu8ll, aBFu33_Uc_BFu8ll)
//============================================================================



static void Test_aBFu33_Uc_BFu8s()
{
  {
    init_simple_test("aBFu33_Uc_BFu8s");
    static STRUCT_IF_C aBFu33_Uc_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu8s.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "aBFu33_Uc_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "aBFu33_Uc_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu8s, aBFu33_Uc_BFu8s)
//============================================================================



static void Test_aBFu33_Uc_BFu9i()
{
  {
    init_simple_test("aBFu33_Uc_BFu9i");
    static STRUCT_IF_C aBFu33_Uc_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Uc_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu9i.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_Uc_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_Uc_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu9i, aBFu33_Uc_BFu9i)
//============================================================================



static void Test_aBFu33_Uc_BFu9ll()
{
  {
    init_simple_test("aBFu33_Uc_BFu9ll");
    static STRUCT_IF_C aBFu33_Uc_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Uc_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu9ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_Uc_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_Uc_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu9ll, aBFu33_Uc_BFu9ll)
//============================================================================



static void Test_aBFu33_Uc_BFu9s()
{
  {
    init_simple_test("aBFu33_Uc_BFu9s");
    static STRUCT_IF_C aBFu33_Uc_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Uc_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_BFu9s.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "aBFu33_Uc_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "aBFu33_Uc_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_BFu9s, aBFu33_Uc_BFu9s)
//============================================================================



static void Test_aBFu33_Uc_C()
{
  {
    init_simple_test("aBFu33_Uc_C");
    static STRUCT_IF_C aBFu33_Uc_C lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_C");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_C.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_C, aBFu33_Uc_C)
//============================================================================



static void Test_aBFu33_Uc_D()
{
  {
    init_simple_test("aBFu33_Uc_D");
    static STRUCT_IF_C aBFu33_Uc_D lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Uc_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_D");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_D.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_D, aBFu33_Uc_D)
//============================================================================



static void Test_aBFu33_Uc_F()
{
  {
    init_simple_test("aBFu33_Uc_F");
    static STRUCT_IF_C aBFu33_Uc_F lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Uc_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_F");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_F.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_F, aBFu33_Uc_F)
//============================================================================



static void Test_aBFu33_Uc_I()
{
  {
    init_simple_test("aBFu33_Uc_I");
    static STRUCT_IF_C aBFu33_Uc_I lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Uc_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_I");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_I.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_I, aBFu33_Uc_I)
//============================================================================



static void Test_aBFu33_Uc_Ip()
{
  {
    init_simple_test("aBFu33_Uc_Ip");
    static STRUCT_IF_C aBFu33_Uc_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Uc_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_Ip.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_Ip, aBFu33_Uc_Ip)
//============================================================================



static void Test_aBFu33_Uc_L()
{
  {
    init_simple_test("aBFu33_Uc_L");
    static STRUCT_IF_C aBFu33_Uc_L lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Uc_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_L");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_L.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_L, aBFu33_Uc_L)
//============================================================================



static void Test_aBFu33_Uc_S()
{
  {
    init_simple_test("aBFu33_Uc_S");
    static STRUCT_IF_C aBFu33_Uc_S lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Uc_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_S");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_S.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_S, aBFu33_Uc_S)
//============================================================================



static void Test_aBFu33_Uc_Uc()
{
  {
    init_simple_test("aBFu33_Uc_Uc");
    static STRUCT_IF_C aBFu33_Uc_Uc lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Uc_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_Uc.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_Uc, aBFu33_Uc_Uc)
//============================================================================



static void Test_aBFu33_Uc_Ui()
{
  {
    init_simple_test("aBFu33_Uc_Ui");
    static STRUCT_IF_C aBFu33_Uc_Ui lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Uc_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_Ui.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_Ui, aBFu33_Uc_Ui)
//============================================================================



static void Test_aBFu33_Uc_Ul()
{
  {
    init_simple_test("aBFu33_Uc_Ul");
    static STRUCT_IF_C aBFu33_Uc_Ul lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Uc_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_Ul.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_Ul, aBFu33_Uc_Ul)
//============================================================================



static void Test_aBFu33_Uc_Us()
{
  {
    init_simple_test("aBFu33_Uc_Us");
    static STRUCT_IF_C aBFu33_Uc_Us lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Uc_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_Us");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_Us.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_Us, aBFu33_Uc_Us)
//============================================================================



static void Test_aBFu33_Uc_Vp()
{
  {
    init_simple_test("aBFu33_Uc_Vp");
    static STRUCT_IF_C aBFu33_Uc_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Uc_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Uc_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Uc_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Uc_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_Uc_Vp.v2");
    check_field_offset(lv, v3, 6, "aBFu33_Uc_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Uc_Vp, aBFu33_Uc_Vp)
//============================================================================



static void Test_aBFu33_Ui()
{
  {
    init_simple_test("aBFu33_Ui");
    static STRUCT_IF_C aBFu33_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui, aBFu33_Ui)
//============================================================================



static void Test_aBFu33_Ui_BFu15i()
{
  {
    init_simple_test("aBFu33_Ui_BFu15i");
    static STRUCT_IF_C aBFu33_Ui_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Ui_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu33_Ui_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu33_Ui_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu15i, aBFu33_Ui_BFu15i)
//============================================================================



static void Test_aBFu33_Ui_BFu15ll()
{
  {
    init_simple_test("aBFu33_Ui_BFu15ll");
    static STRUCT_IF_C aBFu33_Ui_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Ui_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu33_Ui_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu33_Ui_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu15ll, aBFu33_Ui_BFu15ll)
//============================================================================



static void Test_aBFu33_Ui_BFu15s()
{
  {
    init_simple_test("aBFu33_Ui_BFu15s");
    static STRUCT_IF_C aBFu33_Ui_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Ui_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu33_Ui_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu33_Ui_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu15s, aBFu33_Ui_BFu15s)
//============================================================================



static void Test_aBFu33_Ui_BFu16i()
{
  {
    init_simple_test("aBFu33_Ui_BFu16i");
    static STRUCT_IF_C aBFu33_Ui_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Ui_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu33_Ui_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu33_Ui_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu16i, aBFu33_Ui_BFu16i)
//============================================================================



static void Test_aBFu33_Ui_BFu16ll()
{
  {
    init_simple_test("aBFu33_Ui_BFu16ll");
    static STRUCT_IF_C aBFu33_Ui_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Ui_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu33_Ui_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu33_Ui_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu16ll, aBFu33_Ui_BFu16ll)
//============================================================================



static void Test_aBFu33_Ui_BFu16s()
{
  {
    init_simple_test("aBFu33_Ui_BFu16s");
    static STRUCT_IF_C aBFu33_Ui_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Ui_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu33_Ui_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu33_Ui_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu16s, aBFu33_Ui_BFu16s)
//============================================================================



static void Test_aBFu33_Ui_BFu17i()
{
  {
    init_simple_test("aBFu33_Ui_BFu17i");
    static STRUCT_IF_C aBFu33_Ui_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_Ui_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu33_Ui_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu33_Ui_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu17i, aBFu33_Ui_BFu17i)
//============================================================================



static void Test_aBFu33_Ui_BFu17ll()
{
  {
    init_simple_test("aBFu33_Ui_BFu17ll");
    static STRUCT_IF_C aBFu33_Ui_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_Ui_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu33_Ui_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu33_Ui_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu17ll, aBFu33_Ui_BFu17ll)
//============================================================================



static void Test_aBFu33_Ui_BFu1c()
{
  {
    init_simple_test("aBFu33_Ui_BFu1c");
    static STRUCT_IF_C aBFu33_Ui_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_Ui_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu1c, aBFu33_Ui_BFu1c)
//============================================================================



static void Test_aBFu33_Ui_BFu1i()
{
  {
    init_simple_test("aBFu33_Ui_BFu1i");
    static STRUCT_IF_C aBFu33_Ui_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_Ui_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu1i, aBFu33_Ui_BFu1i)
//============================================================================



static void Test_aBFu33_Ui_BFu1ll()
{
  {
    init_simple_test("aBFu33_Ui_BFu1ll");
    static STRUCT_IF_C aBFu33_Ui_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_Ui_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu1ll, aBFu33_Ui_BFu1ll)
//============================================================================



static void Test_aBFu33_Ui_BFu1s()
{
  {
    init_simple_test("aBFu33_Ui_BFu1s");
    static STRUCT_IF_C aBFu33_Ui_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu33_Ui_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu1s, aBFu33_Ui_BFu1s)
//============================================================================



static void Test_aBFu33_Ui_BFu31i()
{
  {
    init_simple_test("aBFu33_Ui_BFu31i");
    static STRUCT_IF_C aBFu33_Ui_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_Ui_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu33_Ui_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu33_Ui_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu31i, aBFu33_Ui_BFu31i)
//============================================================================



static void Test_aBFu33_Ui_BFu31ll()
{
  {
    init_simple_test("aBFu33_Ui_BFu31ll");
    static STRUCT_IF_C aBFu33_Ui_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_Ui_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu33_Ui_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu33_Ui_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu31ll, aBFu33_Ui_BFu31ll)
//============================================================================



static void Test_aBFu33_Ui_BFu32i()
{
  {
    init_simple_test("aBFu33_Ui_BFu32i");
    static STRUCT_IF_C aBFu33_Ui_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_Ui_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu33_Ui_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu33_Ui_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu32i, aBFu33_Ui_BFu32i)
//============================================================================



static void Test_aBFu33_Ui_BFu32ll()
{
  {
    init_simple_test("aBFu33_Ui_BFu32ll");
    static STRUCT_IF_C aBFu33_Ui_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_Ui_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu33_Ui_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu33_Ui_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu32ll, aBFu33_Ui_BFu32ll)
//============================================================================



static void Test_aBFu33_Ui_BFu33()
{
  {
    init_simple_test("aBFu33_Ui_BFu33");
    static STRUCT_IF_C aBFu33_Ui_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ui_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "aBFu33_Ui_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu33, aBFu33_Ui_BFu33)
//============================================================================



static void Test_aBFu33_Ui_BFu7c()
{
  {
    init_simple_test("aBFu33_Ui_BFu7c");
    static STRUCT_IF_C aBFu33_Ui_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_Ui_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_Ui_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu7c, aBFu33_Ui_BFu7c)
//============================================================================



static void Test_aBFu33_Ui_BFu7i()
{
  {
    init_simple_test("aBFu33_Ui_BFu7i");
    static STRUCT_IF_C aBFu33_Ui_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_Ui_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_Ui_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu7i, aBFu33_Ui_BFu7i)
//============================================================================



static void Test_aBFu33_Ui_BFu7ll()
{
  {
    init_simple_test("aBFu33_Ui_BFu7ll");
    static STRUCT_IF_C aBFu33_Ui_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_Ui_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_Ui_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu7ll, aBFu33_Ui_BFu7ll)
//============================================================================



static void Test_aBFu33_Ui_BFu7s()
{
  {
    init_simple_test("aBFu33_Ui_BFu7s");
    static STRUCT_IF_C aBFu33_Ui_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu33_Ui_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu33_Ui_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu7s, aBFu33_Ui_BFu7s)
//============================================================================



static void Test_aBFu33_Ui_BFu8c()
{
  {
    init_simple_test("aBFu33_Ui_BFu8c");
    static STRUCT_IF_C aBFu33_Ui_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_Ui_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_Ui_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu8c, aBFu33_Ui_BFu8c)
//============================================================================



static void Test_aBFu33_Ui_BFu8i()
{
  {
    init_simple_test("aBFu33_Ui_BFu8i");
    static STRUCT_IF_C aBFu33_Ui_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_Ui_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_Ui_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu8i, aBFu33_Ui_BFu8i)
//============================================================================



static void Test_aBFu33_Ui_BFu8ll()
{
  {
    init_simple_test("aBFu33_Ui_BFu8ll");
    static STRUCT_IF_C aBFu33_Ui_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_Ui_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_Ui_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu8ll, aBFu33_Ui_BFu8ll)
//============================================================================



static void Test_aBFu33_Ui_BFu8s()
{
  {
    init_simple_test("aBFu33_Ui_BFu8s");
    static STRUCT_IF_C aBFu33_Ui_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu33_Ui_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu33_Ui_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu8s, aBFu33_Ui_BFu8s)
//============================================================================



static void Test_aBFu33_Ui_BFu9i()
{
  {
    init_simple_test("aBFu33_Ui_BFu9i");
    static STRUCT_IF_C aBFu33_Ui_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Ui_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu33_Ui_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu33_Ui_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu9i, aBFu33_Ui_BFu9i)
//============================================================================



static void Test_aBFu33_Ui_BFu9ll()
{
  {
    init_simple_test("aBFu33_Ui_BFu9ll");
    static STRUCT_IF_C aBFu33_Ui_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Ui_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu33_Ui_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu33_Ui_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu9ll, aBFu33_Ui_BFu9ll)
//============================================================================



static void Test_aBFu33_Ui_BFu9s()
{
  {
    init_simple_test("aBFu33_Ui_BFu9s");
    static STRUCT_IF_C aBFu33_Ui_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Ui_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu33_Ui_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu33_Ui_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_BFu9s, aBFu33_Ui_BFu9s)
//============================================================================



static void Test_aBFu33_Ui_C()
{
  {
    init_simple_test("aBFu33_Ui_C");
    static STRUCT_IF_C aBFu33_Ui_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_C");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_C.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_C, aBFu33_Ui_C)
//============================================================================



static void Test_aBFu33_Ui_D()
{
  {
    init_simple_test("aBFu33_Ui_D");
    static STRUCT_IF_C aBFu33_Ui_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_Ui_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_D");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_D.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_D, aBFu33_Ui_D)
//============================================================================



static void Test_aBFu33_Ui_F()
{
  {
    init_simple_test("aBFu33_Ui_F");
    static STRUCT_IF_C aBFu33_Ui_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_Ui_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_F");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_F.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_F, aBFu33_Ui_F)
//============================================================================



static void Test_aBFu33_Ui_I()
{
  {
    init_simple_test("aBFu33_Ui_I");
    static STRUCT_IF_C aBFu33_Ui_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_Ui_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_I");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_I.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_I, aBFu33_Ui_I)
//============================================================================



static void Test_aBFu33_Ui_Ip()
{
  {
    init_simple_test("aBFu33_Ui_Ip");
    static STRUCT_IF_C aBFu33_Ui_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Ui_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_Ip.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_Ip, aBFu33_Ui_Ip)
//============================================================================



static void Test_aBFu33_Ui_L()
{
  {
    init_simple_test("aBFu33_Ui_L");
    static STRUCT_IF_C aBFu33_Ui_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_Ui_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_L");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_L.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_L, aBFu33_Ui_L)
//============================================================================



static void Test_aBFu33_Ui_S()
{
  {
    init_simple_test("aBFu33_Ui_S");
    static STRUCT_IF_C aBFu33_Ui_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Ui_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_S");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_S.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_S, aBFu33_Ui_S)
//============================================================================



static void Test_aBFu33_Ui_Uc()
{
  {
    init_simple_test("aBFu33_Ui_Uc");
    static STRUCT_IF_C aBFu33_Ui_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Ui_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_Uc.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_Uc, aBFu33_Ui_Uc)
//============================================================================



static void Test_aBFu33_Ui_Ui()
{
  {
    init_simple_test("aBFu33_Ui_Ui");
    static STRUCT_IF_C aBFu33_Ui_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_Ui_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_Ui.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_Ui, aBFu33_Ui_Ui)
//============================================================================



static void Test_aBFu33_Ui_Ul()
{
  {
    init_simple_test("aBFu33_Ui_Ul");
    static STRUCT_IF_C aBFu33_Ui_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_Ui_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_Ul.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_Ul, aBFu33_Ui_Ul)
//============================================================================



static void Test_aBFu33_Ui_Us()
{
  {
    init_simple_test("aBFu33_Ui_Us");
    static STRUCT_IF_C aBFu33_Ui_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Ui_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_Us");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_Us.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_Us, aBFu33_Ui_Us)
//============================================================================



static void Test_aBFu33_Ui_Vp()
{
  {
    init_simple_test("aBFu33_Ui_Vp");
    static STRUCT_IF_C aBFu33_Ui_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Ui_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ui_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ui_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ui_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_Ui_Vp.v2");
    check_field_offset(lv, v3, 9, "aBFu33_Ui_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ui_Vp, aBFu33_Ui_Vp)
//============================================================================



static void Test_aBFu33_Ul()
{
  {
    init_simple_test("aBFu33_Ul");
    static STRUCT_IF_C aBFu33_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu33_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul, aBFu33_Ul)
//============================================================================



static void Test_aBFu33_Ul_BFu15i()
{
  {
    init_simple_test("aBFu33_Ul_BFu15i");
    static STRUCT_IF_C aBFu33_Ul_BFu15i lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Ul_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu15i.v2");
    set_bf_and_test(lv, v3, 13, 0, 15, 1, "aBFu33_Ul_BFu15i");
    set_bf_and_test(lv, v3, 13, 0, 15, hide_ull(1LL<<14), "aBFu33_Ul_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu15i, aBFu33_Ul_BFu15i)
//============================================================================



static void Test_aBFu33_Ul_BFu15ll()
{
  {
    init_simple_test("aBFu33_Ul_BFu15ll");
    static STRUCT_IF_C aBFu33_Ul_BFu15ll lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Ul_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu15ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 15, 1, "aBFu33_Ul_BFu15ll");
    set_bf_and_test(lv, v3, 13, 0, 15, hide_ull(1LL<<14), "aBFu33_Ul_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu15ll, aBFu33_Ul_BFu15ll)
//============================================================================



static void Test_aBFu33_Ul_BFu15s()
{
  {
    init_simple_test("aBFu33_Ul_BFu15s");
    static STRUCT_IF_C aBFu33_Ul_BFu15s lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Ul_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu15s.v2");
    set_bf_and_test(lv, v3, 13, 0, 15, 1, "aBFu33_Ul_BFu15s");
    set_bf_and_test(lv, v3, 13, 0, 15, hide_ull(1LL<<14), "aBFu33_Ul_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu15s, aBFu33_Ul_BFu15s)
//============================================================================



static void Test_aBFu33_Ul_BFu16i()
{
  {
    init_simple_test("aBFu33_Ul_BFu16i");
    static STRUCT_IF_C aBFu33_Ul_BFu16i lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Ul_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu16i.v2");
    set_bf_and_test(lv, v3, 13, 0, 16, 1, "aBFu33_Ul_BFu16i");
    set_bf_and_test(lv, v3, 13, 0, 16, hide_ull(1LL<<15), "aBFu33_Ul_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu16i, aBFu33_Ul_BFu16i)
//============================================================================



static void Test_aBFu33_Ul_BFu16ll()
{
  {
    init_simple_test("aBFu33_Ul_BFu16ll");
    static STRUCT_IF_C aBFu33_Ul_BFu16ll lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Ul_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu16ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 16, 1, "aBFu33_Ul_BFu16ll");
    set_bf_and_test(lv, v3, 13, 0, 16, hide_ull(1LL<<15), "aBFu33_Ul_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu16ll, aBFu33_Ul_BFu16ll)
//============================================================================



static void Test_aBFu33_Ul_BFu16s()
{
  {
    init_simple_test("aBFu33_Ul_BFu16s");
    static STRUCT_IF_C aBFu33_Ul_BFu16s lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Ul_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu16s.v2");
    set_bf_and_test(lv, v3, 13, 0, 16, 1, "aBFu33_Ul_BFu16s");
    set_bf_and_test(lv, v3, 13, 0, 16, hide_ull(1LL<<15), "aBFu33_Ul_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu16s, aBFu33_Ul_BFu16s)
//============================================================================



static void Test_aBFu33_Ul_BFu17i()
{
  {
    init_simple_test("aBFu33_Ul_BFu17i");
    static STRUCT_IF_C aBFu33_Ul_BFu17i lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_Ul_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu17i.v2");
    set_bf_and_test(lv, v3, 13, 0, 17, 1, "aBFu33_Ul_BFu17i");
    set_bf_and_test(lv, v3, 13, 0, 17, hide_ull(1LL<<16), "aBFu33_Ul_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu17i, aBFu33_Ul_BFu17i)
//============================================================================



static void Test_aBFu33_Ul_BFu17ll()
{
  {
    init_simple_test("aBFu33_Ul_BFu17ll");
    static STRUCT_IF_C aBFu33_Ul_BFu17ll lv;
    check2(sizeof(lv), 16, "sizeof(aBFu33_Ul_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu17ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 17, 1, "aBFu33_Ul_BFu17ll");
    set_bf_and_test(lv, v3, 13, 0, 17, hide_ull(1LL<<16), "aBFu33_Ul_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu17ll, aBFu33_Ul_BFu17ll)
//============================================================================



static void Test_aBFu33_Ul_BFu1c()
{
  {
    init_simple_test("aBFu33_Ul_BFu1c");
    static STRUCT_IF_C aBFu33_Ul_BFu1c lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu1c.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_Ul_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu1c, aBFu33_Ul_BFu1c)
//============================================================================



static void Test_aBFu33_Ul_BFu1i()
{
  {
    init_simple_test("aBFu33_Ul_BFu1i");
    static STRUCT_IF_C aBFu33_Ul_BFu1i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu1i.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_Ul_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu1i, aBFu33_Ul_BFu1i)
//============================================================================



static void Test_aBFu33_Ul_BFu1ll()
{
  {
    init_simple_test("aBFu33_Ul_BFu1ll");
    static STRUCT_IF_C aBFu33_Ul_BFu1ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu1ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_Ul_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu1ll, aBFu33_Ul_BFu1ll)
//============================================================================



static void Test_aBFu33_Ul_BFu1s()
{
  {
    init_simple_test("aBFu33_Ul_BFu1s");
    static STRUCT_IF_C aBFu33_Ul_BFu1s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu1s.v2");
    set_bf_and_test(lv, v3, 13, 0, 1, 1, "aBFu33_Ul_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu1s, aBFu33_Ul_BFu1s)
//============================================================================



static void Test_aBFu33_Ul_BFu31i()
{
  {
    init_simple_test("aBFu33_Ul_BFu31i");
    static STRUCT_IF_C aBFu33_Ul_BFu31i lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_Ul_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu31i.v2");
    set_bf_and_test(lv, v3, 13, 0, 31, 1, "aBFu33_Ul_BFu31i");
    set_bf_and_test(lv, v3, 13, 0, 31, hide_ull(1LL<<30), "aBFu33_Ul_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu31i, aBFu33_Ul_BFu31i)
//============================================================================



static void Test_aBFu33_Ul_BFu31ll()
{
  {
    init_simple_test("aBFu33_Ul_BFu31ll");
    static STRUCT_IF_C aBFu33_Ul_BFu31ll lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_Ul_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu31ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 31, 1, "aBFu33_Ul_BFu31ll");
    set_bf_and_test(lv, v3, 13, 0, 31, hide_ull(1LL<<30), "aBFu33_Ul_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu31ll, aBFu33_Ul_BFu31ll)
//============================================================================



static void Test_aBFu33_Ul_BFu32i()
{
  {
    init_simple_test("aBFu33_Ul_BFu32i");
    static STRUCT_IF_C aBFu33_Ul_BFu32i lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_Ul_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu32i.v2");
    set_bf_and_test(lv, v3, 13, 0, 32, 1, "aBFu33_Ul_BFu32i");
    set_bf_and_test(lv, v3, 13, 0, 32, hide_ull(1LL<<31), "aBFu33_Ul_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu32i, aBFu33_Ul_BFu32i)
//============================================================================



static void Test_aBFu33_Ul_BFu32ll()
{
  {
    init_simple_test("aBFu33_Ul_BFu32ll");
    static STRUCT_IF_C aBFu33_Ul_BFu32ll lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_Ul_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu32ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 32, 1, "aBFu33_Ul_BFu32ll");
    set_bf_and_test(lv, v3, 13, 0, 32, hide_ull(1LL<<31), "aBFu33_Ul_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu32ll, aBFu33_Ul_BFu32ll)
//============================================================================



static void Test_aBFu33_Ul_BFu33()
{
  {
    init_simple_test("aBFu33_Ul_BFu33");
    static STRUCT_IF_C aBFu33_Ul_BFu33 lv;
    check2(sizeof(lv), 18, "sizeof(aBFu33_Ul_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu33.v2");
    set_bf_and_test(lv, v3, 13, 0, 33, 1, "aBFu33_Ul_BFu33");
    set_bf_and_test(lv, v3, 13, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu33, aBFu33_Ul_BFu33)
//============================================================================



static void Test_aBFu33_Ul_BFu7c()
{
  {
    init_simple_test("aBFu33_Ul_BFu7c");
    static STRUCT_IF_C aBFu33_Ul_BFu7c lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu7c.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_Ul_BFu7c");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_Ul_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu7c, aBFu33_Ul_BFu7c)
//============================================================================



static void Test_aBFu33_Ul_BFu7i()
{
  {
    init_simple_test("aBFu33_Ul_BFu7i");
    static STRUCT_IF_C aBFu33_Ul_BFu7i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu7i.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_Ul_BFu7i");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_Ul_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu7i, aBFu33_Ul_BFu7i)
//============================================================================



static void Test_aBFu33_Ul_BFu7ll()
{
  {
    init_simple_test("aBFu33_Ul_BFu7ll");
    static STRUCT_IF_C aBFu33_Ul_BFu7ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu7ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_Ul_BFu7ll");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_Ul_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu7ll, aBFu33_Ul_BFu7ll)
//============================================================================



static void Test_aBFu33_Ul_BFu7s()
{
  {
    init_simple_test("aBFu33_Ul_BFu7s");
    static STRUCT_IF_C aBFu33_Ul_BFu7s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu7s.v2");
    set_bf_and_test(lv, v3, 13, 0, 7, 1, "aBFu33_Ul_BFu7s");
    set_bf_and_test(lv, v3, 13, 0, 7, hide_ull(1LL<<6), "aBFu33_Ul_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu7s, aBFu33_Ul_BFu7s)
//============================================================================



static void Test_aBFu33_Ul_BFu8c()
{
  {
    init_simple_test("aBFu33_Ul_BFu8c");
    static STRUCT_IF_C aBFu33_Ul_BFu8c lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu8c.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_Ul_BFu8c");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_Ul_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu8c, aBFu33_Ul_BFu8c)
//============================================================================



static void Test_aBFu33_Ul_BFu8i()
{
  {
    init_simple_test("aBFu33_Ul_BFu8i");
    static STRUCT_IF_C aBFu33_Ul_BFu8i lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu8i.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_Ul_BFu8i");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_Ul_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu8i, aBFu33_Ul_BFu8i)
//============================================================================



static void Test_aBFu33_Ul_BFu8ll()
{
  {
    init_simple_test("aBFu33_Ul_BFu8ll");
    static STRUCT_IF_C aBFu33_Ul_BFu8ll lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu8ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_Ul_BFu8ll");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_Ul_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu8ll, aBFu33_Ul_BFu8ll)
//============================================================================



static void Test_aBFu33_Ul_BFu8s()
{
  {
    init_simple_test("aBFu33_Ul_BFu8s");
    static STRUCT_IF_C aBFu33_Ul_BFu8s lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu8s.v2");
    set_bf_and_test(lv, v3, 13, 0, 8, 1, "aBFu33_Ul_BFu8s");
    set_bf_and_test(lv, v3, 13, 0, 8, hide_ull(1LL<<7), "aBFu33_Ul_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu8s, aBFu33_Ul_BFu8s)
//============================================================================



static void Test_aBFu33_Ul_BFu9i()
{
  {
    init_simple_test("aBFu33_Ul_BFu9i");
    static STRUCT_IF_C aBFu33_Ul_BFu9i lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Ul_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu9i.v2");
    set_bf_and_test(lv, v3, 13, 0, 9, 1, "aBFu33_Ul_BFu9i");
    set_bf_and_test(lv, v3, 13, 0, 9, hide_ull(1LL<<8), "aBFu33_Ul_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu9i, aBFu33_Ul_BFu9i)
//============================================================================



static void Test_aBFu33_Ul_BFu9ll()
{
  {
    init_simple_test("aBFu33_Ul_BFu9ll");
    static STRUCT_IF_C aBFu33_Ul_BFu9ll lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Ul_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu9ll.v2");
    set_bf_and_test(lv, v3, 13, 0, 9, 1, "aBFu33_Ul_BFu9ll");
    set_bf_and_test(lv, v3, 13, 0, 9, hide_ull(1LL<<8), "aBFu33_Ul_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu9ll, aBFu33_Ul_BFu9ll)
//============================================================================



static void Test_aBFu33_Ul_BFu9s()
{
  {
    init_simple_test("aBFu33_Ul_BFu9s");
    static STRUCT_IF_C aBFu33_Ul_BFu9s lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Ul_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_BFu9s.v2");
    set_bf_and_test(lv, v3, 13, 0, 9, 1, "aBFu33_Ul_BFu9s");
    set_bf_and_test(lv, v3, 13, 0, 9, hide_ull(1LL<<8), "aBFu33_Ul_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_BFu9s, aBFu33_Ul_BFu9s)
//============================================================================



static void Test_aBFu33_Ul_C()
{
  {
    init_simple_test("aBFu33_Ul_C");
    static STRUCT_IF_C aBFu33_Ul_C lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_C");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_C.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_C, aBFu33_Ul_C)
//============================================================================



static void Test_aBFu33_Ul_D()
{
  {
    init_simple_test("aBFu33_Ul_D");
    static STRUCT_IF_C aBFu33_Ul_D lv;
    check2(sizeof(lv), 21, "sizeof(aBFu33_Ul_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_D");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_D.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_D, aBFu33_Ul_D)
//============================================================================



static void Test_aBFu33_Ul_F()
{
  {
    init_simple_test("aBFu33_Ul_F");
    static STRUCT_IF_C aBFu33_Ul_F lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_Ul_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_F");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_F.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_F, aBFu33_Ul_F)
//============================================================================



static void Test_aBFu33_Ul_I()
{
  {
    init_simple_test("aBFu33_Ul_I");
    static STRUCT_IF_C aBFu33_Ul_I lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_Ul_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_I");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_I.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_I, aBFu33_Ul_I)
//============================================================================



static void Test_aBFu33_Ul_Ip()
{
  {
    init_simple_test("aBFu33_Ul_Ip");
    static STRUCT_IF_C aBFu33_Ul_Ip lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_Ul_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_Ip.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_Ip, aBFu33_Ul_Ip)
//============================================================================



static void Test_aBFu33_Ul_L()
{
  {
    init_simple_test("aBFu33_Ul_L");
    static STRUCT_IF_C aBFu33_Ul_L lv;
    check2(sizeof(lv), 21, "sizeof(aBFu33_Ul_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_L");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_L.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_L, aBFu33_Ul_L)
//============================================================================



static void Test_aBFu33_Ul_S()
{
  {
    init_simple_test("aBFu33_Ul_S");
    static STRUCT_IF_C aBFu33_Ul_S lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Ul_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_S");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_S.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_S, aBFu33_Ul_S)
//============================================================================



static void Test_aBFu33_Ul_Uc()
{
  {
    init_simple_test("aBFu33_Ul_Uc");
    static STRUCT_IF_C aBFu33_Ul_Uc lv;
    check2(sizeof(lv), 14, "sizeof(aBFu33_Ul_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_Uc.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_Uc, aBFu33_Ul_Uc)
//============================================================================



static void Test_aBFu33_Ul_Ui()
{
  {
    init_simple_test("aBFu33_Ul_Ui");
    static STRUCT_IF_C aBFu33_Ul_Ui lv;
    check2(sizeof(lv), 17, "sizeof(aBFu33_Ul_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_Ui.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_Ui, aBFu33_Ul_Ui)
//============================================================================



static void Test_aBFu33_Ul_Ul()
{
  {
    init_simple_test("aBFu33_Ul_Ul");
    static STRUCT_IF_C aBFu33_Ul_Ul lv;
    check2(sizeof(lv), 21, "sizeof(aBFu33_Ul_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_Ul.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_Ul, aBFu33_Ul_Ul)
//============================================================================



static void Test_aBFu33_Ul_Us()
{
  {
    init_simple_test("aBFu33_Ul_Us");
    static STRUCT_IF_C aBFu33_Ul_Us lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Ul_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_Us");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_Us.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_Us, aBFu33_Ul_Us)
//============================================================================



static void Test_aBFu33_Ul_Vp()
{
  {
    init_simple_test("aBFu33_Ul_Vp");
    static STRUCT_IF_C aBFu33_Ul_Vp lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_Ul_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Ul_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Ul_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Ul_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_Ul_Vp.v2");
    check_field_offset(lv, v3, 13, "aBFu33_Ul_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Ul_Vp, aBFu33_Ul_Vp)
//============================================================================



static void Test_aBFu33_Us()
{
  {
    init_simple_test("aBFu33_Us");
    static STRUCT_IF_C aBFu33_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu33_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us");
    check_field_offset(lv, v2, 5, "aBFu33_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us, aBFu33_Us)
//============================================================================



static void Test_aBFu33_Us_BFu15i()
{
  {
    init_simple_test("aBFu33_Us_BFu15i");
    static STRUCT_IF_C aBFu33_Us_BFu15i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Us_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu15i.v2");
    set_bf_and_test(lv, v3, 7, 0, 15, 1, "aBFu33_Us_BFu15i");
    set_bf_and_test(lv, v3, 7, 0, 15, hide_ull(1LL<<14), "aBFu33_Us_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu15i, aBFu33_Us_BFu15i)
//============================================================================



static void Test_aBFu33_Us_BFu15ll()
{
  {
    init_simple_test("aBFu33_Us_BFu15ll");
    static STRUCT_IF_C aBFu33_Us_BFu15ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Us_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu15ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 15, 1, "aBFu33_Us_BFu15ll");
    set_bf_and_test(lv, v3, 7, 0, 15, hide_ull(1LL<<14), "aBFu33_Us_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu15ll, aBFu33_Us_BFu15ll)
//============================================================================



static void Test_aBFu33_Us_BFu15s()
{
  {
    init_simple_test("aBFu33_Us_BFu15s");
    static STRUCT_IF_C aBFu33_Us_BFu15s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Us_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu15s.v2");
    set_bf_and_test(lv, v3, 7, 0, 15, 1, "aBFu33_Us_BFu15s");
    set_bf_and_test(lv, v3, 7, 0, 15, hide_ull(1LL<<14), "aBFu33_Us_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu15s, aBFu33_Us_BFu15s)
//============================================================================



static void Test_aBFu33_Us_BFu16i()
{
  {
    init_simple_test("aBFu33_Us_BFu16i");
    static STRUCT_IF_C aBFu33_Us_BFu16i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Us_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu16i.v2");
    set_bf_and_test(lv, v3, 7, 0, 16, 1, "aBFu33_Us_BFu16i");
    set_bf_and_test(lv, v3, 7, 0, 16, hide_ull(1LL<<15), "aBFu33_Us_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu16i, aBFu33_Us_BFu16i)
//============================================================================



static void Test_aBFu33_Us_BFu16ll()
{
  {
    init_simple_test("aBFu33_Us_BFu16ll");
    static STRUCT_IF_C aBFu33_Us_BFu16ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Us_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu16ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 16, 1, "aBFu33_Us_BFu16ll");
    set_bf_and_test(lv, v3, 7, 0, 16, hide_ull(1LL<<15), "aBFu33_Us_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu16ll, aBFu33_Us_BFu16ll)
//============================================================================



static void Test_aBFu33_Us_BFu16s()
{
  {
    init_simple_test("aBFu33_Us_BFu16s");
    static STRUCT_IF_C aBFu33_Us_BFu16s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Us_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu16s.v2");
    set_bf_and_test(lv, v3, 7, 0, 16, 1, "aBFu33_Us_BFu16s");
    set_bf_and_test(lv, v3, 7, 0, 16, hide_ull(1LL<<15), "aBFu33_Us_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu16s, aBFu33_Us_BFu16s)
//============================================================================



static void Test_aBFu33_Us_BFu17i()
{
  {
    init_simple_test("aBFu33_Us_BFu17i");
    static STRUCT_IF_C aBFu33_Us_BFu17i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Us_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu17i.v2");
    set_bf_and_test(lv, v3, 7, 0, 17, 1, "aBFu33_Us_BFu17i");
    set_bf_and_test(lv, v3, 7, 0, 17, hide_ull(1LL<<16), "aBFu33_Us_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu17i, aBFu33_Us_BFu17i)
//============================================================================



static void Test_aBFu33_Us_BFu17ll()
{
  {
    init_simple_test("aBFu33_Us_BFu17ll");
    static STRUCT_IF_C aBFu33_Us_BFu17ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu33_Us_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu17ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 17, 1, "aBFu33_Us_BFu17ll");
    set_bf_and_test(lv, v3, 7, 0, 17, hide_ull(1LL<<16), "aBFu33_Us_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu17ll, aBFu33_Us_BFu17ll)
//============================================================================



static void Test_aBFu33_Us_BFu1c()
{
  {
    init_simple_test("aBFu33_Us_BFu1c");
    static STRUCT_IF_C aBFu33_Us_BFu1c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu1c.v2");
    set_bf_and_test(lv, v3, 7, 0, 1, 1, "aBFu33_Us_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu1c, aBFu33_Us_BFu1c)
//============================================================================



static void Test_aBFu33_Us_BFu1i()
{
  {
    init_simple_test("aBFu33_Us_BFu1i");
    static STRUCT_IF_C aBFu33_Us_BFu1i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu1i.v2");
    set_bf_and_test(lv, v3, 7, 0, 1, 1, "aBFu33_Us_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu1i, aBFu33_Us_BFu1i)
//============================================================================



static void Test_aBFu33_Us_BFu1ll()
{
  {
    init_simple_test("aBFu33_Us_BFu1ll");
    static STRUCT_IF_C aBFu33_Us_BFu1ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu1ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 1, 1, "aBFu33_Us_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu1ll, aBFu33_Us_BFu1ll)
//============================================================================



static void Test_aBFu33_Us_BFu1s()
{
  {
    init_simple_test("aBFu33_Us_BFu1s");
    static STRUCT_IF_C aBFu33_Us_BFu1s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu1s.v2");
    set_bf_and_test(lv, v3, 7, 0, 1, 1, "aBFu33_Us_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu1s, aBFu33_Us_BFu1s)
//============================================================================



static void Test_aBFu33_Us_BFu31i()
{
  {
    init_simple_test("aBFu33_Us_BFu31i");
    static STRUCT_IF_C aBFu33_Us_BFu31i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Us_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu31i.v2");
    set_bf_and_test(lv, v3, 7, 0, 31, 1, "aBFu33_Us_BFu31i");
    set_bf_and_test(lv, v3, 7, 0, 31, hide_ull(1LL<<30), "aBFu33_Us_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu31i, aBFu33_Us_BFu31i)
//============================================================================



static void Test_aBFu33_Us_BFu31ll()
{
  {
    init_simple_test("aBFu33_Us_BFu31ll");
    static STRUCT_IF_C aBFu33_Us_BFu31ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Us_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu31ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 31, 1, "aBFu33_Us_BFu31ll");
    set_bf_and_test(lv, v3, 7, 0, 31, hide_ull(1LL<<30), "aBFu33_Us_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu31ll, aBFu33_Us_BFu31ll)
//============================================================================



static void Test_aBFu33_Us_BFu32i()
{
  {
    init_simple_test("aBFu33_Us_BFu32i");
    static STRUCT_IF_C aBFu33_Us_BFu32i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Us_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu32i.v2");
    set_bf_and_test(lv, v3, 7, 0, 32, 1, "aBFu33_Us_BFu32i");
    set_bf_and_test(lv, v3, 7, 0, 32, hide_ull(1LL<<31), "aBFu33_Us_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu32i, aBFu33_Us_BFu32i)
//============================================================================



static void Test_aBFu33_Us_BFu32ll()
{
  {
    init_simple_test("aBFu33_Us_BFu32ll");
    static STRUCT_IF_C aBFu33_Us_BFu32ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Us_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu32ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 32, 1, "aBFu33_Us_BFu32ll");
    set_bf_and_test(lv, v3, 7, 0, 32, hide_ull(1LL<<31), "aBFu33_Us_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu32ll, aBFu33_Us_BFu32ll)
//============================================================================



static void Test_aBFu33_Us_BFu33()
{
  {
    init_simple_test("aBFu33_Us_BFu33");
    static STRUCT_IF_C aBFu33_Us_BFu33 lv;
    check2(sizeof(lv), 12, "sizeof(aBFu33_Us_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu33.v2");
    set_bf_and_test(lv, v3, 7, 0, 33, 1, "aBFu33_Us_BFu33");
    set_bf_and_test(lv, v3, 7, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu33, aBFu33_Us_BFu33)
//============================================================================



static void Test_aBFu33_Us_BFu7c()
{
  {
    init_simple_test("aBFu33_Us_BFu7c");
    static STRUCT_IF_C aBFu33_Us_BFu7c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu7c.v2");
    set_bf_and_test(lv, v3, 7, 0, 7, 1, "aBFu33_Us_BFu7c");
    set_bf_and_test(lv, v3, 7, 0, 7, hide_ull(1LL<<6), "aBFu33_Us_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu7c, aBFu33_Us_BFu7c)
//============================================================================



static void Test_aBFu33_Us_BFu7i()
{
  {
    init_simple_test("aBFu33_Us_BFu7i");
    static STRUCT_IF_C aBFu33_Us_BFu7i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu7i.v2");
    set_bf_and_test(lv, v3, 7, 0, 7, 1, "aBFu33_Us_BFu7i");
    set_bf_and_test(lv, v3, 7, 0, 7, hide_ull(1LL<<6), "aBFu33_Us_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu7i, aBFu33_Us_BFu7i)
//============================================================================



static void Test_aBFu33_Us_BFu7ll()
{
  {
    init_simple_test("aBFu33_Us_BFu7ll");
    static STRUCT_IF_C aBFu33_Us_BFu7ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu7ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 7, 1, "aBFu33_Us_BFu7ll");
    set_bf_and_test(lv, v3, 7, 0, 7, hide_ull(1LL<<6), "aBFu33_Us_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu7ll, aBFu33_Us_BFu7ll)
//============================================================================



static void Test_aBFu33_Us_BFu7s()
{
  {
    init_simple_test("aBFu33_Us_BFu7s");
    static STRUCT_IF_C aBFu33_Us_BFu7s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu7s.v2");
    set_bf_and_test(lv, v3, 7, 0, 7, 1, "aBFu33_Us_BFu7s");
    set_bf_and_test(lv, v3, 7, 0, 7, hide_ull(1LL<<6), "aBFu33_Us_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu7s, aBFu33_Us_BFu7s)
//============================================================================



static void Test_aBFu33_Us_BFu8c()
{
  {
    init_simple_test("aBFu33_Us_BFu8c");
    static STRUCT_IF_C aBFu33_Us_BFu8c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu8c.v2");
    set_bf_and_test(lv, v3, 7, 0, 8, 1, "aBFu33_Us_BFu8c");
    set_bf_and_test(lv, v3, 7, 0, 8, hide_ull(1LL<<7), "aBFu33_Us_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu8c, aBFu33_Us_BFu8c)
//============================================================================



static void Test_aBFu33_Us_BFu8i()
{
  {
    init_simple_test("aBFu33_Us_BFu8i");
    static STRUCT_IF_C aBFu33_Us_BFu8i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu8i.v2");
    set_bf_and_test(lv, v3, 7, 0, 8, 1, "aBFu33_Us_BFu8i");
    set_bf_and_test(lv, v3, 7, 0, 8, hide_ull(1LL<<7), "aBFu33_Us_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu8i, aBFu33_Us_BFu8i)
//============================================================================



static void Test_aBFu33_Us_BFu8ll()
{
  {
    init_simple_test("aBFu33_Us_BFu8ll");
    static STRUCT_IF_C aBFu33_Us_BFu8ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu8ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 8, 1, "aBFu33_Us_BFu8ll");
    set_bf_and_test(lv, v3, 7, 0, 8, hide_ull(1LL<<7), "aBFu33_Us_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu8ll, aBFu33_Us_BFu8ll)
//============================================================================



static void Test_aBFu33_Us_BFu8s()
{
  {
    init_simple_test("aBFu33_Us_BFu8s");
    static STRUCT_IF_C aBFu33_Us_BFu8s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu8s.v2");
    set_bf_and_test(lv, v3, 7, 0, 8, 1, "aBFu33_Us_BFu8s");
    set_bf_and_test(lv, v3, 7, 0, 8, hide_ull(1LL<<7), "aBFu33_Us_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu8s, aBFu33_Us_BFu8s)
//============================================================================



static void Test_aBFu33_Us_BFu9i()
{
  {
    init_simple_test("aBFu33_Us_BFu9i");
    static STRUCT_IF_C aBFu33_Us_BFu9i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Us_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu9i.v2");
    set_bf_and_test(lv, v3, 7, 0, 9, 1, "aBFu33_Us_BFu9i");
    set_bf_and_test(lv, v3, 7, 0, 9, hide_ull(1LL<<8), "aBFu33_Us_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu9i, aBFu33_Us_BFu9i)
//============================================================================



static void Test_aBFu33_Us_BFu9ll()
{
  {
    init_simple_test("aBFu33_Us_BFu9ll");
    static STRUCT_IF_C aBFu33_Us_BFu9ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Us_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu9ll.v2");
    set_bf_and_test(lv, v3, 7, 0, 9, 1, "aBFu33_Us_BFu9ll");
    set_bf_and_test(lv, v3, 7, 0, 9, hide_ull(1LL<<8), "aBFu33_Us_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu9ll, aBFu33_Us_BFu9ll)
//============================================================================



static void Test_aBFu33_Us_BFu9s()
{
  {
    init_simple_test("aBFu33_Us_BFu9s");
    static STRUCT_IF_C aBFu33_Us_BFu9s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Us_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_Us_BFu9s.v2");
    set_bf_and_test(lv, v3, 7, 0, 9, 1, "aBFu33_Us_BFu9s");
    set_bf_and_test(lv, v3, 7, 0, 9, hide_ull(1LL<<8), "aBFu33_Us_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_BFu9s, aBFu33_Us_BFu9s)
//============================================================================



static void Test_aBFu33_Us_C()
{
  {
    init_simple_test("aBFu33_Us_C");
    static STRUCT_IF_C aBFu33_Us_C lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_C");
    check_field_offset(lv, v2, 5, "aBFu33_Us_C.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_C, aBFu33_Us_C)
//============================================================================



static void Test_aBFu33_Us_D()
{
  {
    init_simple_test("aBFu33_Us_D");
    static STRUCT_IF_C aBFu33_Us_D lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Us_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_D");
    check_field_offset(lv, v2, 5, "aBFu33_Us_D.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_D, aBFu33_Us_D)
//============================================================================



static void Test_aBFu33_Us_F()
{
  {
    init_simple_test("aBFu33_Us_F");
    static STRUCT_IF_C aBFu33_Us_F lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Us_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_F");
    check_field_offset(lv, v2, 5, "aBFu33_Us_F.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_F, aBFu33_Us_F)
//============================================================================



static void Test_aBFu33_Us_I()
{
  {
    init_simple_test("aBFu33_Us_I");
    static STRUCT_IF_C aBFu33_Us_I lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Us_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_I");
    check_field_offset(lv, v2, 5, "aBFu33_Us_I.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_I, aBFu33_Us_I)
//============================================================================



static void Test_aBFu33_Us_Ip()
{
  {
    init_simple_test("aBFu33_Us_Ip");
    static STRUCT_IF_C aBFu33_Us_Ip lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Us_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_Us_Ip.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_Ip, aBFu33_Us_Ip)
//============================================================================



static void Test_aBFu33_Us_L()
{
  {
    init_simple_test("aBFu33_Us_L");
    static STRUCT_IF_C aBFu33_Us_L lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Us_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_L");
    check_field_offset(lv, v2, 5, "aBFu33_Us_L.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_L, aBFu33_Us_L)
//============================================================================



static void Test_aBFu33_Us_S()
{
  {
    init_simple_test("aBFu33_Us_S");
    static STRUCT_IF_C aBFu33_Us_S lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Us_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_S");
    check_field_offset(lv, v2, 5, "aBFu33_Us_S.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_S, aBFu33_Us_S)
//============================================================================



static void Test_aBFu33_Us_Uc()
{
  {
    init_simple_test("aBFu33_Us_Uc");
    static STRUCT_IF_C aBFu33_Us_Uc lv;
    check2(sizeof(lv), 8, "sizeof(aBFu33_Us_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_Us_Uc.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_Uc, aBFu33_Us_Uc)
//============================================================================



static void Test_aBFu33_Us_Ui()
{
  {
    init_simple_test("aBFu33_Us_Ui");
    static STRUCT_IF_C aBFu33_Us_Ui lv;
    check2(sizeof(lv), 11, "sizeof(aBFu33_Us_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_Us_Ui.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_Ui, aBFu33_Us_Ui)
//============================================================================



static void Test_aBFu33_Us_Ul()
{
  {
    init_simple_test("aBFu33_Us_Ul");
    static STRUCT_IF_C aBFu33_Us_Ul lv;
    check2(sizeof(lv), 15, "sizeof(aBFu33_Us_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_Us_Ul.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_Ul, aBFu33_Us_Ul)
//============================================================================



static void Test_aBFu33_Us_Us()
{
  {
    init_simple_test("aBFu33_Us_Us");
    static STRUCT_IF_C aBFu33_Us_Us lv;
    check2(sizeof(lv), 9, "sizeof(aBFu33_Us_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_Us");
    check_field_offset(lv, v2, 5, "aBFu33_Us_Us.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_Us, aBFu33_Us_Us)
//============================================================================



static void Test_aBFu33_Us_Vp()
{
  {
    init_simple_test("aBFu33_Us_Vp");
    static STRUCT_IF_C aBFu33_Us_Vp lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Us_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Us_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Us_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Us_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_Us_Vp.v2");
    check_field_offset(lv, v3, 7, "aBFu33_Us_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Us_Vp, aBFu33_Us_Vp)
//============================================================================



static void Test_aBFu33_Vp()
{
  {
    init_simple_test("aBFu33_Vp");
    static STRUCT_IF_C aBFu33_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu33_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp, aBFu33_Vp)
//============================================================================



static void Test_aBFu33_Vp_BFu15i()
{
  {
    init_simple_test("aBFu33_Vp_BFu15i");
    static STRUCT_IF_C aBFu33_Vp_BFu15i lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Vp_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu15i");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, 1, "aBFu33_Vp_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, hide_ull(1LL<<14), "aBFu33_Vp_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu15i, aBFu33_Vp_BFu15i)
//============================================================================



static void Test_aBFu33_Vp_BFu15ll()
{
  {
    init_simple_test("aBFu33_Vp_BFu15ll");
    static STRUCT_IF_C aBFu33_Vp_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Vp_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu15ll");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, 1, "aBFu33_Vp_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, hide_ull(1LL<<14), "aBFu33_Vp_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu15ll, aBFu33_Vp_BFu15ll)
//============================================================================



static void Test_aBFu33_Vp_BFu15s()
{
  {
    init_simple_test("aBFu33_Vp_BFu15s");
    static STRUCT_IF_C aBFu33_Vp_BFu15s lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Vp_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu15s");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, 1, "aBFu33_Vp_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 15, hide_ull(1LL<<14), "aBFu33_Vp_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu15s, aBFu33_Vp_BFu15s)
//============================================================================



static void Test_aBFu33_Vp_BFu16i()
{
  {
    init_simple_test("aBFu33_Vp_BFu16i");
    static STRUCT_IF_C aBFu33_Vp_BFu16i lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Vp_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu16i");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, 1, "aBFu33_Vp_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, hide_ull(1LL<<15), "aBFu33_Vp_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu16i, aBFu33_Vp_BFu16i)
//============================================================================



static void Test_aBFu33_Vp_BFu16ll()
{
  {
    init_simple_test("aBFu33_Vp_BFu16ll");
    static STRUCT_IF_C aBFu33_Vp_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Vp_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu16ll");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, 1, "aBFu33_Vp_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, hide_ull(1LL<<15), "aBFu33_Vp_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu16ll, aBFu33_Vp_BFu16ll)
//============================================================================



static void Test_aBFu33_Vp_BFu16s()
{
  {
    init_simple_test("aBFu33_Vp_BFu16s");
    static STRUCT_IF_C aBFu33_Vp_BFu16s lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Vp_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu16s");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, 1, "aBFu33_Vp_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 16, hide_ull(1LL<<15), "aBFu33_Vp_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu16s, aBFu33_Vp_BFu16s)
//============================================================================



static void Test_aBFu33_Vp_BFu17i()
{
  {
    init_simple_test("aBFu33_Vp_BFu17i");
    static STRUCT_IF_C aBFu33_Vp_BFu17i lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu33_Vp_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu17i");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 17, 1, "aBFu33_Vp_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 17, hide_ull(1LL<<16), "aBFu33_Vp_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu17i, aBFu33_Vp_BFu17i)
//============================================================================



static void Test_aBFu33_Vp_BFu17ll()
{
  {
    init_simple_test("aBFu33_Vp_BFu17ll");
    static STRUCT_IF_C aBFu33_Vp_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu33_Vp_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu17ll");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 17, 1, "aBFu33_Vp_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 17, hide_ull(1LL<<16), "aBFu33_Vp_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu17ll, aBFu33_Vp_BFu17ll)
//============================================================================



static void Test_aBFu33_Vp_BFu1c()
{
  {
    init_simple_test("aBFu33_Vp_BFu1c");
    static STRUCT_IF_C aBFu33_Vp_BFu1c lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu1c");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 1, 1, "aBFu33_Vp_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu1c, aBFu33_Vp_BFu1c)
//============================================================================



static void Test_aBFu33_Vp_BFu1i()
{
  {
    init_simple_test("aBFu33_Vp_BFu1i");
    static STRUCT_IF_C aBFu33_Vp_BFu1i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu1i");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 1, 1, "aBFu33_Vp_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu1i, aBFu33_Vp_BFu1i)
//============================================================================



static void Test_aBFu33_Vp_BFu1ll()
{
  {
    init_simple_test("aBFu33_Vp_BFu1ll");
    static STRUCT_IF_C aBFu33_Vp_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu1ll");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 1, 1, "aBFu33_Vp_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu1ll, aBFu33_Vp_BFu1ll)
//============================================================================



static void Test_aBFu33_Vp_BFu1s()
{
  {
    init_simple_test("aBFu33_Vp_BFu1s");
    static STRUCT_IF_C aBFu33_Vp_BFu1s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu1s");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 1, 1, "aBFu33_Vp_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu1s, aBFu33_Vp_BFu1s)
//============================================================================



static void Test_aBFu33_Vp_BFu31i()
{
  {
    init_simple_test("aBFu33_Vp_BFu31i");
    static STRUCT_IF_C aBFu33_Vp_BFu31i lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Vp_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu31i");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 31, 1, "aBFu33_Vp_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 31, hide_ull(1LL<<30), "aBFu33_Vp_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu31i, aBFu33_Vp_BFu31i)
//============================================================================



static void Test_aBFu33_Vp_BFu31ll()
{
  {
    init_simple_test("aBFu33_Vp_BFu31ll");
    static STRUCT_IF_C aBFu33_Vp_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Vp_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu31ll");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 31, 1, "aBFu33_Vp_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 31, hide_ull(1LL<<30), "aBFu33_Vp_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu31ll, aBFu33_Vp_BFu31ll)
//============================================================================



static void Test_aBFu33_Vp_BFu32i()
{
  {
    init_simple_test("aBFu33_Vp_BFu32i");
    static STRUCT_IF_C aBFu33_Vp_BFu32i lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Vp_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu32i");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 32, 1, "aBFu33_Vp_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 32, hide_ull(1LL<<31), "aBFu33_Vp_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu32i, aBFu33_Vp_BFu32i)
//============================================================================



static void Test_aBFu33_Vp_BFu32ll()
{
  {
    init_simple_test("aBFu33_Vp_BFu32ll");
    static STRUCT_IF_C aBFu33_Vp_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Vp_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu32ll");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 32, 1, "aBFu33_Vp_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 32, hide_ull(1LL<<31), "aBFu33_Vp_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu32ll, aBFu33_Vp_BFu32ll)
//============================================================================



static void Test_aBFu33_Vp_BFu33()
{
  {
    init_simple_test("aBFu33_Vp_BFu33");
    static STRUCT_IF_C aBFu33_Vp_BFu33 lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(aBFu33_Vp_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu33");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 33, 1, "aBFu33_Vp_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu33, aBFu33_Vp_BFu33)
//============================================================================



static void Test_aBFu33_Vp_BFu7c()
{
  {
    init_simple_test("aBFu33_Vp_BFu7c");
    static STRUCT_IF_C aBFu33_Vp_BFu7c lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu7c");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, 1, "aBFu33_Vp_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, hide_ull(1LL<<6), "aBFu33_Vp_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu7c, aBFu33_Vp_BFu7c)
//============================================================================



static void Test_aBFu33_Vp_BFu7i()
{
  {
    init_simple_test("aBFu33_Vp_BFu7i");
    static STRUCT_IF_C aBFu33_Vp_BFu7i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu7i");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, 1, "aBFu33_Vp_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, hide_ull(1LL<<6), "aBFu33_Vp_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu7i, aBFu33_Vp_BFu7i)
//============================================================================



static void Test_aBFu33_Vp_BFu7ll()
{
  {
    init_simple_test("aBFu33_Vp_BFu7ll");
    static STRUCT_IF_C aBFu33_Vp_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu7ll");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, 1, "aBFu33_Vp_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, hide_ull(1LL<<6), "aBFu33_Vp_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu7ll, aBFu33_Vp_BFu7ll)
//============================================================================



static void Test_aBFu33_Vp_BFu7s()
{
  {
    init_simple_test("aBFu33_Vp_BFu7s");
    static STRUCT_IF_C aBFu33_Vp_BFu7s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu7s");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, 1, "aBFu33_Vp_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 7, hide_ull(1LL<<6), "aBFu33_Vp_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu7s, aBFu33_Vp_BFu7s)
//============================================================================



static void Test_aBFu33_Vp_BFu8c()
{
  {
    init_simple_test("aBFu33_Vp_BFu8c");
    static STRUCT_IF_C aBFu33_Vp_BFu8c lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu8c");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, 1, "aBFu33_Vp_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, hide_ull(1LL<<7), "aBFu33_Vp_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu8c, aBFu33_Vp_BFu8c)
//============================================================================



static void Test_aBFu33_Vp_BFu8i()
{
  {
    init_simple_test("aBFu33_Vp_BFu8i");
    static STRUCT_IF_C aBFu33_Vp_BFu8i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu8i");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, 1, "aBFu33_Vp_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, hide_ull(1LL<<7), "aBFu33_Vp_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu8i, aBFu33_Vp_BFu8i)
//============================================================================



static void Test_aBFu33_Vp_BFu8ll()
{
  {
    init_simple_test("aBFu33_Vp_BFu8ll");
    static STRUCT_IF_C aBFu33_Vp_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu8ll");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, 1, "aBFu33_Vp_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, hide_ull(1LL<<7), "aBFu33_Vp_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu8ll, aBFu33_Vp_BFu8ll)
//============================================================================



static void Test_aBFu33_Vp_BFu8s()
{
  {
    init_simple_test("aBFu33_Vp_BFu8s");
    static STRUCT_IF_C aBFu33_Vp_BFu8s lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu8s");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, 1, "aBFu33_Vp_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 8, hide_ull(1LL<<7), "aBFu33_Vp_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu8s, aBFu33_Vp_BFu8s)
//============================================================================



static void Test_aBFu33_Vp_BFu9i()
{
  {
    init_simple_test("aBFu33_Vp_BFu9i");
    static STRUCT_IF_C aBFu33_Vp_BFu9i lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Vp_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu9i");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, 1, "aBFu33_Vp_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, hide_ull(1LL<<8), "aBFu33_Vp_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu9i, aBFu33_Vp_BFu9i)
//============================================================================



static void Test_aBFu33_Vp_BFu9ll()
{
  {
    init_simple_test("aBFu33_Vp_BFu9ll");
    static STRUCT_IF_C aBFu33_Vp_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Vp_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu9ll");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, 1, "aBFu33_Vp_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, hide_ull(1LL<<8), "aBFu33_Vp_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu9ll, aBFu33_Vp_BFu9ll)
//============================================================================



static void Test_aBFu33_Vp_BFu9s()
{
  {
    init_simple_test("aBFu33_Vp_BFu9s");
    static STRUCT_IF_C aBFu33_Vp_BFu9s lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Vp_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_BFu9s");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, 1, "aBFu33_Vp_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(13,9), 0, 9, hide_ull(1LL<<8), "aBFu33_Vp_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_BFu9s, aBFu33_Vp_BFu9s)
//============================================================================



static void Test_aBFu33_Vp_C()
{
  {
    init_simple_test("aBFu33_Vp_C");
    static STRUCT_IF_C aBFu33_Vp_C lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_C");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_C.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_C, aBFu33_Vp_C)
//============================================================================



static void Test_aBFu33_Vp_D()
{
  {
    init_simple_test("aBFu33_Vp_D");
    static STRUCT_IF_C aBFu33_Vp_D lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_Vp_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_D");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_D.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_D, aBFu33_Vp_D)
//============================================================================



static void Test_aBFu33_Vp_F()
{
  {
    init_simple_test("aBFu33_Vp_F");
    static STRUCT_IF_C aBFu33_Vp_F lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Vp_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_F");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_F.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_F, aBFu33_Vp_F)
//============================================================================



static void Test_aBFu33_Vp_I()
{
  {
    init_simple_test("aBFu33_Vp_I");
    static STRUCT_IF_C aBFu33_Vp_I lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Vp_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_I");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_I.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_I, aBFu33_Vp_I)
//============================================================================



static void Test_aBFu33_Vp_Ip()
{
  {
    init_simple_test("aBFu33_Vp_Ip");
    static STRUCT_IF_C aBFu33_Vp_Ip lv;
    check2(sizeof(lv), ABISELECT(21,13), "sizeof(aBFu33_Vp_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_Ip");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_Ip, aBFu33_Vp_Ip)
//============================================================================



static void Test_aBFu33_Vp_L()
{
  {
    init_simple_test("aBFu33_Vp_L");
    static STRUCT_IF_C aBFu33_Vp_L lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_Vp_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_L");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_L.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_L, aBFu33_Vp_L)
//============================================================================



static void Test_aBFu33_Vp_S()
{
  {
    init_simple_test("aBFu33_Vp_S");
    static STRUCT_IF_C aBFu33_Vp_S lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Vp_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_S");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_S.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_S, aBFu33_Vp_S)
//============================================================================



static void Test_aBFu33_Vp_Uc()
{
  {
    init_simple_test("aBFu33_Vp_Uc");
    static STRUCT_IF_C aBFu33_Vp_Uc lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu33_Vp_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_Uc");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_Uc, aBFu33_Vp_Uc)
//============================================================================



static void Test_aBFu33_Vp_Ui()
{
  {
    init_simple_test("aBFu33_Vp_Ui");
    static STRUCT_IF_C aBFu33_Vp_Ui lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu33_Vp_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_Ui");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_Ui, aBFu33_Vp_Ui)
//============================================================================



static void Test_aBFu33_Vp_Ul()
{
  {
    init_simple_test("aBFu33_Vp_Ul");
    static STRUCT_IF_C aBFu33_Vp_Ul lv;
    check2(sizeof(lv), ABISELECT(21,17), "sizeof(aBFu33_Vp_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_Ul");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_Ul, aBFu33_Vp_Ul)
//============================================================================



static void Test_aBFu33_Vp_Us()
{
  {
    init_simple_test("aBFu33_Vp_Us");
    static STRUCT_IF_C aBFu33_Vp_Us lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(aBFu33_Vp_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_Us");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_Us.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_Us, aBFu33_Vp_Us)
//============================================================================



static void Test_aBFu33_Vp_Vp()
{
  {
    init_simple_test("aBFu33_Vp_Vp");
    static STRUCT_IF_C aBFu33_Vp_Vp lv;
    check2(sizeof(lv), ABISELECT(21,13), "sizeof(aBFu33_Vp_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu33_Vp_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu33_Vp_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu33_Vp_Vp");
    check_field_offset(lv, v2, 5, "aBFu33_Vp_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(13,9), "aBFu33_Vp_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu33_Vp_Vp, aBFu33_Vp_Vp)
//============================================================================



static void Test_aBFu63_BFs63()
{
  {
    init_simple_test("aBFu63_BFs63");
    static STRUCT_IF_C aBFu63_BFs63 lv;
    check2(sizeof(lv), 16, "sizeof(aBFu63_BFs63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFs63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFs63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_sll(1LL<<62), "aBFu63_BFs63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFs63, aBFu63_BFs63)
//============================================================================



static void Test_aBFu63_BFs63_BFs63()
{
  {
    init_simple_test("aBFu63_BFs63_BFs63");
    static STRUCT_IF_C aBFu63_BFs63_BFs63 lv;
    check2(sizeof(lv), 24, "sizeof(aBFu63_BFs63_BFs63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFs63_BFs63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFs63_BFs63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFs63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFs63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_sll(1LL<<62), "aBFu63_BFs63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFs63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_sll(1LL<<62), "aBFu63_BFs63_BFs63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFs63_BFs63, aBFu63_BFs63_BFs63)
//============================================================================



static void Test_aBFu63_BFs63_BFs63_BFs63()
{
  {
    init_simple_test("aBFu63_BFs63_BFs63_BFs63");
    static STRUCT_IF_C aBFu63_BFs63_BFs63_BFs63 lv;
    check2(sizeof(lv), 32, "sizeof(aBFu63_BFs63_BFs63_BFs63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFs63_BFs63_BFs63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFs63_BFs63_BFs63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFs63_BFs63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFs63_BFs63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_sll(1LL<<62), "aBFu63_BFs63_BFs63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFs63_BFs63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_sll(1LL<<62), "aBFu63_BFs63_BFs63_BFs63");
    set_bf_and_test(lv, v4, 23, 5, 63, 1, "aBFu63_BFs63_BFs63_BFs63");
    set_bf_and_test(lv, v4, 23, 5, 63, hide_sll(1LL<<62), "aBFu63_BFs63_BFs63_BFs63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFs63_BFs63_BFs63, aBFu63_BFs63_BFs63_BFs63)
//============================================================================



static void Test_aBFu63_BFs63_BFs63_BFu63()
{
  {
    init_simple_test("aBFu63_BFs63_BFs63_BFu63");
    static STRUCT_IF_C aBFu63_BFs63_BFs63_BFu63 lv;
    check2(sizeof(lv), 32, "sizeof(aBFu63_BFs63_BFs63_BFu63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFs63_BFs63_BFu63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFs63_BFs63_BFu63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFs63_BFs63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFs63_BFs63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_sll(1LL<<62), "aBFu63_BFs63_BFs63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFs63_BFs63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_sll(1LL<<62), "aBFu63_BFs63_BFs63_BFu63");
    set_bf_and_test(lv, v4, 23, 5, 63, 1, "aBFu63_BFs63_BFs63_BFu63");
    set_bf_and_test(lv, v4, 23, 5, 63, hide_ull(1LL<<62), "aBFu63_BFs63_BFs63_BFu63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFs63_BFs63_BFu63, aBFu63_BFs63_BFs63_BFu63)
//============================================================================



static void Test_aBFu63_BFs63_BFu63()
{
  {
    init_simple_test("aBFu63_BFs63_BFu63");
    static STRUCT_IF_C aBFu63_BFs63_BFu63 lv;
    check2(sizeof(lv), 24, "sizeof(aBFu63_BFs63_BFu63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFs63_BFu63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFs63_BFu63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFs63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFs63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_sll(1LL<<62), "aBFu63_BFs63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFs63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_ull(1LL<<62), "aBFu63_BFs63_BFu63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFs63_BFu63, aBFu63_BFs63_BFu63)
//============================================================================



static void Test_aBFu63_BFs63_BFu63_BFs63()
{
  {
    init_simple_test("aBFu63_BFs63_BFu63_BFs63");
    static STRUCT_IF_C aBFu63_BFs63_BFu63_BFs63 lv;
    check2(sizeof(lv), 32, "sizeof(aBFu63_BFs63_BFu63_BFs63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFs63_BFu63_BFs63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFs63_BFu63_BFs63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFs63_BFu63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFs63_BFu63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_sll(1LL<<62), "aBFu63_BFs63_BFu63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFs63_BFu63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_ull(1LL<<62), "aBFu63_BFs63_BFu63_BFs63");
    set_bf_and_test(lv, v4, 23, 5, 63, 1, "aBFu63_BFs63_BFu63_BFs63");
    set_bf_and_test(lv, v4, 23, 5, 63, hide_sll(1LL<<62), "aBFu63_BFs63_BFu63_BFs63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFs63_BFu63_BFs63, aBFu63_BFs63_BFu63_BFs63)
//============================================================================



static void Test_aBFu63_BFs63_BFu63_BFu63()
{
  {
    init_simple_test("aBFu63_BFs63_BFu63_BFu63");
    static STRUCT_IF_C aBFu63_BFs63_BFu63_BFu63 lv;
    check2(sizeof(lv), 32, "sizeof(aBFu63_BFs63_BFu63_BFu63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFs63_BFu63_BFu63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFs63_BFu63_BFu63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFs63_BFu63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFs63_BFu63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_sll(1LL<<62), "aBFu63_BFs63_BFu63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFs63_BFu63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_ull(1LL<<62), "aBFu63_BFs63_BFu63_BFu63");
    set_bf_and_test(lv, v4, 23, 5, 63, 1, "aBFu63_BFs63_BFu63_BFu63");
    set_bf_and_test(lv, v4, 23, 5, 63, hide_ull(1LL<<62), "aBFu63_BFs63_BFu63_BFu63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFs63_BFu63_BFu63, aBFu63_BFs63_BFu63_BFu63)
//============================================================================



static void Test_aBFu63_BFu63()
{
  {
    init_simple_test("aBFu63_BFu63");
    static STRUCT_IF_C aBFu63_BFu63 lv;
    check2(sizeof(lv), 16, "sizeof(aBFu63_BFu63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFu63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFu63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_ull(1LL<<62), "aBFu63_BFu63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFu63, aBFu63_BFu63)
//============================================================================



static void Test_aBFu63_BFu63_BFs63()
{
  {
    init_simple_test("aBFu63_BFu63_BFs63");
    static STRUCT_IF_C aBFu63_BFu63_BFs63 lv;
    check2(sizeof(lv), 24, "sizeof(aBFu63_BFu63_BFs63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFu63_BFs63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFu63_BFs63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFu63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFu63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_sll(1LL<<62), "aBFu63_BFu63_BFs63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFu63_BFs63, aBFu63_BFu63_BFs63)
//============================================================================



static void Test_aBFu63_BFu63_BFs63_BFs63()
{
  {
    init_simple_test("aBFu63_BFu63_BFs63_BFs63");
    static STRUCT_IF_C aBFu63_BFu63_BFs63_BFs63 lv;
    check2(sizeof(lv), 32, "sizeof(aBFu63_BFu63_BFs63_BFs63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFu63_BFs63_BFs63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFu63_BFs63_BFs63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFs63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFu63_BFs63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFs63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFu63_BFs63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_sll(1LL<<62), "aBFu63_BFu63_BFs63_BFs63");
    set_bf_and_test(lv, v4, 23, 5, 63, 1, "aBFu63_BFu63_BFs63_BFs63");
    set_bf_and_test(lv, v4, 23, 5, 63, hide_sll(1LL<<62), "aBFu63_BFu63_BFs63_BFs63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFu63_BFs63_BFs63, aBFu63_BFu63_BFs63_BFs63)
//============================================================================



static void Test_aBFu63_BFu63_BFs63_BFu63()
{
  {
    init_simple_test("aBFu63_BFu63_BFs63_BFu63");
    static STRUCT_IF_C aBFu63_BFu63_BFs63_BFu63 lv;
    check2(sizeof(lv), 32, "sizeof(aBFu63_BFu63_BFs63_BFu63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFu63_BFs63_BFu63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFu63_BFs63_BFu63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFs63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFu63_BFs63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFs63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFu63_BFs63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_sll(1LL<<62), "aBFu63_BFu63_BFs63_BFu63");
    set_bf_and_test(lv, v4, 23, 5, 63, 1, "aBFu63_BFu63_BFs63_BFu63");
    set_bf_and_test(lv, v4, 23, 5, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFs63_BFu63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFu63_BFs63_BFu63, aBFu63_BFu63_BFs63_BFu63)
//============================================================================



static void Test_aBFu63_BFu63_BFu63()
{
  {
    init_simple_test("aBFu63_BFu63_BFu63");
    static STRUCT_IF_C aBFu63_BFu63_BFu63 lv;
    check2(sizeof(lv), 24, "sizeof(aBFu63_BFu63_BFu63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFu63_BFu63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFu63_BFu63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFu63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFu63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFu63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFu63_BFu63, aBFu63_BFu63_BFu63)
//============================================================================



static void Test_aBFu63_BFu63_BFu63_BFs63()
{
  {
    init_simple_test("aBFu63_BFu63_BFu63_BFs63");
    static STRUCT_IF_C aBFu63_BFu63_BFu63_BFs63 lv;
    check2(sizeof(lv), 32, "sizeof(aBFu63_BFu63_BFu63_BFs63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFu63_BFu63_BFs63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFu63_BFu63_BFs63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFu63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFu63_BFu63_BFs63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFu63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFu63_BFu63_BFs63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFu63_BFs63");
    set_bf_and_test(lv, v4, 23, 5, 63, 1, "aBFu63_BFu63_BFu63_BFs63");
    set_bf_and_test(lv, v4, 23, 5, 63, hide_sll(1LL<<62), "aBFu63_BFu63_BFu63_BFs63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFu63_BFu63_BFs63, aBFu63_BFu63_BFu63_BFs63)
//============================================================================



static void Test_aBFu63_BFu63_BFu63_BFu63()
{
  {
    init_simple_test("aBFu63_BFu63_BFu63_BFu63");
    static STRUCT_IF_C aBFu63_BFu63_BFu63_BFu63 lv;
    check2(sizeof(lv), 32, "sizeof(aBFu63_BFu63_BFu63_BFu63)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu63_BFu63_BFu63_BFu63)");
    set_bf_and_test(lv, v1, 0, 0, 63, 1, "aBFu63_BFu63_BFu63_BFu63");
    set_bf_and_test(lv, v1, 0, 0, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFu63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, 1, "aBFu63_BFu63_BFu63_BFu63");
    set_bf_and_test(lv, v2, 7, 7, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFu63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, 1, "aBFu63_BFu63_BFu63_BFu63");
    set_bf_and_test(lv, v3, 15, 6, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFu63_BFu63");
    set_bf_and_test(lv, v4, 23, 5, 63, 1, "aBFu63_BFu63_BFu63_BFu63");
    set_bf_and_test(lv, v4, 23, 5, 63, hide_ull(1LL<<62), "aBFu63_BFu63_BFu63_BFu63");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu63_BFu63_BFu63_BFu63, aBFu63_BFu63_BFu63_BFu63)
//============================================================================



static void Test_aBFu64_BFs64()
{
  {
    init_simple_test("aBFu64_BFs64");
    static STRUCT_IF_C aBFu64_BFs64 lv;
    check2(sizeof(lv), 16, "sizeof(aBFu64_BFs64)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu64_BFs64)");
    set_bf_and_test(lv, v1, 0, 0, 64, 1, "aBFu64_BFs64");
    set_bf_and_test(lv, v1, 0, 0, 64, hide_ull(1LL<<63), "aBFu64_BFs64");
    set_bf_and_test(lv, v2, 8, 0, 64, 1, "aBFu64_BFs64");
    set_bf_and_test(lv, v2, 8, 0, 64, hide_sll(1LL<<63), "aBFu64_BFs64");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu64_BFs64, aBFu64_BFs64)
//============================================================================

