CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
76 lines
2.5 KiB
C
76 lines
2.5 KiB
C
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fms-layout-compatibility=microsoft -fclangir -emit-cir %s -o %t.cir
|
|
// RUN: FileCheck --input-file=%t.cir %s --check-prefix=CIR
|
|
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fms-layout-compatibility=microsoft -fclangir -emit-llvm %s -o %t-cir.ll
|
|
// RUN: FileCheck --input-file=%t-cir.ll %s --check-prefix=LLVM
|
|
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fms-layout-compatibility=microsoft -emit-llvm %s -o %t.ll
|
|
// RUN: FileCheck --input-file=%t.ll %s --check-prefix=OGCG
|
|
|
|
struct s1 {
|
|
int f32 : 2;
|
|
long long f64 : 30;
|
|
} s1;
|
|
|
|
// CIR-DAG: !rec_s1 = !cir.struct<"s1" {!s32i, !s64i}>
|
|
// LLVM-DAG: %struct.s1 = type { i32, i64 }
|
|
// OGCG-DAG: %struct.s1 = type { i32, i64 }
|
|
|
|
struct s2 {
|
|
int a : 24;
|
|
char b;
|
|
int c : 30;
|
|
} Clip;
|
|
|
|
// CIR-DAG: !rec_s2 = !cir.struct<"s2" {!s32i, !s8i, !s32i}>
|
|
// LLVM-DAG: %struct.s2 = type { i32, i8, i32 }
|
|
// OGCG-DAG: %struct.s2 = type { i32, i8, i32 }
|
|
|
|
struct s3 {
|
|
int a : 18;
|
|
int : 0;
|
|
int c : 14;
|
|
} zero_bit;
|
|
|
|
// CIR-DAG: !rec_s3 = !cir.struct<"s3" {!s32i, !s32i}>
|
|
// LLVM-DAG: %struct.s3 = type { i32, i32 }
|
|
// OGCG-DAG: %struct.s3 = type { i32, i32 }
|
|
|
|
#pragma pack (push,1)
|
|
|
|
struct Inner {
|
|
unsigned int A : 1;
|
|
unsigned int B : 1;
|
|
unsigned int C : 1;
|
|
unsigned int D : 30;
|
|
} Inner;
|
|
|
|
#pragma pack (pop)
|
|
|
|
// CIR-DAG: !rec_Inner = !cir.struct<"Inner" {!u32i, !u32i}>
|
|
// LLVM-DAG: %struct.Inner = type { i32, i32 }
|
|
// OGCG-DAG: %struct.Inner = type { i32, i32 }
|
|
|
|
#pragma pack(push, 1)
|
|
|
|
union HEADER {
|
|
struct A {
|
|
int : 3; // Bits 2:0
|
|
int a : 9; // Bits 11:3
|
|
int : 12; // Bits 23:12
|
|
int b : 17; // Bits 40:24
|
|
int : 7; // Bits 47:41
|
|
int c : 4; // Bits 51:48
|
|
int : 4; // Bits 55:52
|
|
int d : 3; // Bits 58:56
|
|
int : 5; // Bits 63:59
|
|
} Bits;
|
|
} HEADER;
|
|
|
|
#pragma pack(pop)
|
|
|
|
// CIR-DAG: !rec_A = !cir.struct<"A" {!s32i, !s32i, !s32i}>
|
|
// CIR-DAG: !rec_HEADER = !cir.union<"HEADER" {!rec_A}>
|
|
// LLVM-DAG: %struct.A = type { i32, i32, i32 }
|
|
// LLVM-DAG: %union.HEADER = type { %struct.A }
|
|
// OGCG-DAG: %struct.A = type { i32, i32, i32 }
|
|
// OGCG-DAG: %union.HEADER = type { %struct.A }
|