================
@@ -297,10 +297,10 @@ mlir::LogicalResult 
CIRToLLVMCopyOpLowering::matchAndRewrite(
       op.getCopySizeInBytes(layout));
   assert(!cir::MissingFeatures::aggValueSlotVolatile());
 
-  uint64_t dstTypeAlign = dataLayout.getTypeABIAlignment(convertTypeForMemory(
-      *getTypeConverter(), dataLayout, op.getDst().getType().getPointee()));
-  uint64_t srcTypeAlign = dataLayout.getTypeABIAlignment(convertTypeForMemory(
-      *getTypeConverter(), dataLayout, op.getSrc().getType().getPointee()));
+  uint64_t dstTypeAlign =
+      dataLayout.getTypeABIAlignment(op.getDst().getType().getPointee());
----------------
erichkeane wrote:

That is the bit I mentioned as 'second' in my commit message.  Doing 
`convertTypeForMemory` for bit-int types ends up getting the array, so the 
alignment is wrong.  It would be problematic for many reasons for the 
before/after types here to have a different alignment, so getting the CIR 
alignment SHOULD be the same as the LLVM type anyway (other than the slight 
awkwardness of BitInt arrays).

https://github.com/llvm/llvm-project/pull/225470
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to