================ @@ -1886,6 +1896,29 @@ llvm::Constant *ConstantEmitter::emitForMemory(CodeGenModule &CGM, return Res; } + if (destType->isBitIntType()) { + if (CGM.getTypes().typeRequiresSplitIntoByteArray(destType, C->getType())) { + // Long _BitInt has array of bytes as in-memory type. + // So, split constant into individual bytes. + ConstantAggregateBuilder Builder(CGM); + llvm::Type *DesiredTy = CGM.getTypes().ConvertTypeForMem(destType); + llvm::Type *LoadStoreTy = ---------------- momchil-velikov wrote:
It would seem instead of invoking `convertTypeForLoadStore` we could use the bit width of the in-memory type and sign-/zero- extend the `APInt Value`, something like. ``` llvm::APInt Value; if destType is unsigned Value = CI->getValue().zext(Width); else Value = CI->getValue().sext(Width); ``` https://github.com/llvm/llvm-project/pull/91364 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits