[clang] [CIR] Layout _BitInt types in record/array in CIR as it is in LLVM-IR (PR #219487)
Erich Keane via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 28 07:30:28 PDT 2026
================
@@ -201,22 +201,22 @@ int call_wide_char(Pair2 p, WideChar w) { return vf(p, w); }
// declared parameter.
int ell_bitint17(Pair2 p, _BitInt(17) b) { return vf(p, b); }
-// CIR-LABEL: cir.func {{.*}}@ell_bitint17(%arg0: !u64i loc({{.+}}), %arg1: !cir.int<s, 17, bitint> {llvm.signext} loc({{.+}})) -> !s32i
+// CIR-LABEL: cir.func {{.*}}@ell_bitint17(%arg0: !u64i loc({{.+}}), %arg1: !cir.int<s, 17, bitint> {llvm.noundef, llvm.signext} loc({{.+}})) -> !s32i
----------------
erichkeane wrote:
These changes are interesting... Apparently by getting these 'correct' we start emitting the 'noundef' because there is a 'full size' to the bitints? It isn't perfectly clear to me, but this seems to put us in alignment(hah!) with LLVM-IR.
https://github.com/llvm/llvm-project/pull/219487
More information about the cfe-commits
mailing list