https://github.com/jsjodin created 
https://github.com/llvm/llvm-project/pull/226706

This patch fixes the order of creation, otherwise the compiler may evaluate one 
before the other and the lit test fail.

>From d189bca6ebb646c5faf6816b641e5ff87b026c6c Mon Sep 17 00:00:00 2001
From: Jan Leyonberg <[email protected]>
Date: Sat, 26 Sep 2026 10:57:44 -0400
Subject: [PATCH] [CIR] Fix order of creation so that lit test will not fail

This patch fixes the order of creation, otherwise the compiler may evaluate one
before the other and the lit test fail.
---
 .../Transforms/TargetLowering/CIRABIRewriteContext.cpp       | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp 
b/clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
index a9f73e667f1f3..a7639abb62466 100644
--- a/clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+++ b/clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
@@ -1897,8 +1897,9 @@ mlir::Value copyRegisterToTemp(CIRBaseBuilderTy &b, 
mlir::Location loc,
         loc, b.createPtrBitcast(regAddr, f.ac.coercedType), 8);
     mlir::Value dst = temp;
     if (f.ac.directOffset) {
-      dst = b.createPtrStride(loc, b.createPtrBitcast(temp, byteTy),
-                              b.getSignedInt(loc, f.ac.directOffset, 32));
+      mlir::Value tempByte = b.createPtrBitcast(temp, byteTy);
+      mlir::Value offset = b.getSignedInt(loc, f.ac.directOffset, 32);
+      dst = b.createPtrStride(loc, tempByte, offset);
     }
     b.createStore(loc, val, b.createPtrBitcast(dst, f.ac.coercedType));
     return b.createPtrBitcast(temp, byteTy);

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

Reply via email to