[clang] [CIR] Implement lowering for BitInt that needs to be an array (PR #225470)
Kazu Hirata via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 22 11:07:58 PDT 2026
================
@@ -0,0 +1,145 @@
+// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir %s -o %t.cir
+// RUN: FileCheck --check-prefix=CIR --input-file=%t.cir %s
+// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fclangir -emit-llvm %s -o %t-cir.ll
+// RUN: FileCheck --check-prefixes=LLVM,CIRONLY --input-file=%t-cir.ll %s
+// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm %s -o %t.ll
+// RUN: FileCheck --check-prefixes=LLVM,OGCG --input-file=%t.ll %s
+
+unsigned _BitInt(200) w200 = 5;
+// CIR-DAG: cir.global external @w200 = #cir.int<5> : !cir.int<u, 200, bitint> {alignment = 8 : i64}
+// LLVM-DAG: @w200 = global i256 5, align 8
+signed _BitInt(256) w256 = -1;
+// CIR-DAG: cir.global external @w256 = #cir.int<-1> : !s256i_bitint {alignment = 8 : i64}
+// LLVM-DAG: @w256 = global i256 -1, align 8
+
+signed _BitInt(129) g_neg = -1;
+// CIR-DAG: cir.global external @g_neg = #cir.int<-1> : !cir.int<s, 129, bitint> {alignment = 8 : i64}
+// LLVM-dAG: @g_neg = global [24 x i8] c"\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF", align 8
----------------
kazutakahirata wrote:
Do you mean `LLVM-DAG` instead of `LLVM-dAG` here? IIRC, FileCheck directives are case sensitive:
```suggestion
// LLVM-DAG: @g_neg = global [24 x i8] c"\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF", align 8
```
https://github.com/llvm/llvm-project/pull/225470
More information about the cfe-commits
mailing list