[flang-commits] [flang] [mlir] [flang][mlir] Add support for implicit linearization in omp.simd (PR #150386)
Kareem Ergawy via flang-commits
flang-commits at lists.llvm.org
Thu Aug 7 01:36:54 PDT 2025
================
@@ -193,18 +214,27 @@ class LinearClauseProcessor {
// Emit increments for linear vars
llvm::LoadInst *linearVarStart =
builder.CreateLoad(linearOrigVars[index]->getAllocatedType(),
-
linearPreconditionVars[index]);
+
auto mulInst = builder.CreateMul(loopInductionVar, linearSteps[index]);
- auto addInst = builder.CreateAdd(linearVarStart, mulInst);
- builder.CreateStore(addInst, linearLoopBodyTemps[index]);
+ if (linearOrigVars[index]->getAllocatedType()->isIntegerTy()) {
+ auto addInst = builder.CreateAdd(linearVarStart, mulInst);
+ builder.CreateStore(addInst, linearLoopBodyTemps[index]);
+ } else if (linearOrigVars[index]
+ ->getAllocatedType()
+ ->isFloatingPointTy()) {
+ auto cvt = builder.CreateSIToFP(
+ mulInst, linearOrigVars[index]->getAllocatedType());
+ auto addInst = builder.CreateFAdd(linearVarStart, cvt);
+ builder.CreateStore(addInst, linearLoopBodyTemps[index]);
+ }
----------------
ergawy wrote:
should we add an `else` with an `assert(false)` here?
https://github.com/llvm/llvm-project/pull/150386
More information about the flang-commits
mailing list