[clang] [CIR] Emit _BitInt constants in memory form (PR #205605)

via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 25 08:54:34 PDT 2026


================
@@ -1823,10 +1819,11 @@ mlir::Attribute ConstantEmitter::emitForMemory(CIRGenModule &cgm,
     cgm.errorNYI("emitForMemory: zero-extend HLSL bool vectors");
   }
 
-  if (destType->isBitIntType()) {
-    cgm.errorNYI("emitForMemory: _BitInt type");
-  }
-
+  // CIR represents a _BitInt(N) value in memory at its exact width
+  // (!cir.int<N, bitint>), unlike classic CodeGen which widens to a separate
+  // load/store type (e.g. i8 for _BitInt(7)) or a byte array for long
+  // _BitInt.  The value constant is therefore already in its in-memory
+  // representation and needs no adjustment here.
----------------
adams381 wrote:

Taking your wording.

https://github.com/llvm/llvm-project/pull/205605


More information about the cfe-commits mailing list