[flang-commits] [flang] [llvm] [flang][PPC] Implement ieee_set_status and ieee_get_status for AIX (PR #215618)

via flang-commits flang-commits at lists.llvm.org
Tue Aug 11 11:06:39 PDT 2026


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp,h -- flang-rt/lib/runtime/exceptions.cpp flang-rt/unittests/Runtime/Exceptions.cpp flang/include/flang/Optimizer/Builder/LowLevelIntrinsics.h flang/lib/Optimizer/Builder/IntrinsicCall.cpp flang/lib/Optimizer/Builder/LowLevelIntrinsics.cpp --diff_from_common_commit
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/flang/lib/Optimizer/Builder/IntrinsicCall.cpp b/flang/lib/Optimizer/Builder/IntrinsicCall.cpp
index e70a261da..c6f0d7262 100644
--- a/flang/lib/Optimizer/Builder/IntrinsicCall.cpp
+++ b/flang/lib/Optimizer/Builder/IntrinsicCall.cpp
@@ -5222,13 +5222,13 @@ void IntrinsicLibrary::genIeeeGetOrSetModesOrStatus(
       //   bytes  [0, 20) - fenv_t saved by fegetenv / restored by fesetenv
       //   bytes [20, 28) - raw FPSCR double from mffs (trap-enable bits [7:3])
       static constexpr int kAIXFenvTSize = 20; // sizeof(fenv_t) on AIX
-      mlir::Type i8Ty  = builder.getIntegerType(8);
+      mlir::Type i8Ty = builder.getIntegerType(8);
       mlir::Type f64Ty = builder.getF64Type();
       mlir::Type idxTy = builder.getIndexType();
-      mlir::Type i8SeqTy = fir::SequenceType::get(
-          {fir::SequenceType::getUnknownExtent()}, i8Ty);
+      mlir::Type i8SeqTy =
+          fir::SequenceType::get({fir::SequenceType::getUnknownExtent()}, i8Ty);
       mlir::Type i8SeqPtrTy = builder.getRefType(i8SeqTy);
-      mlir::Type f64PtrTy   = builder.getRefType(f64Ty);
+      mlir::Type f64PtrTy = builder.getRefType(f64Ty);
 
       // Cast __data base pointer to !fir.ref<!fir.array<?xi8>> for GEP
       mlir::Value base = fir::ConvertOp::create(builder, loc, i8SeqPtrTy,
@@ -5246,8 +5246,7 @@ void IntrinsicLibrary::genIeeeGetOrSetModesOrStatus(
           builder.createIntegerConstant(loc, idxTy, kAIXFenvTSize);
       mlir::Value fpGep = fir::CoordinateOp::create(
           builder, loc, builder.getRefType(i8Ty), base, fpIdx);
-      mlir::Value fpPtr =
-          fir::ConvertOp::create(builder, loc, f64PtrTy, fpGep);
+      mlir::Value fpPtr = fir::ConvertOp::create(builder, loc, f64PtrTy, fpGep);
 
       if constexpr (isGet) {
         mlir::func::FuncOp readFlm = fir::factory::getLlvmPpcReadflm(builder);
@@ -5260,7 +5259,7 @@ void IntrinsicLibrary::genIeeeGetOrSetModesOrStatus(
         // Store the raw FPSCR double at offset kAIXFenvTSize
         fir::StoreOp::create(builder, loc, fpscr, fpPtr);
       } else {
-        mlir::func::FuncOp setFlm  = fir::factory::getLlvmPpcSetflm(builder);
+        mlir::func::FuncOp setFlm = fir::factory::getLlvmPpcSetflm(builder);
         // Restore the floating-point environment
         genRuntimeCall("fesetenv", i32Ty, fenvPtr);
         // Load the raw FPSCR double from offset kAIXFenvTSize
diff --git a/flang/lib/Optimizer/Builder/LowLevelIntrinsics.cpp b/flang/lib/Optimizer/Builder/LowLevelIntrinsics.cpp
index 2a081588c..282a66547 100644
--- a/flang/lib/Optimizer/Builder/LowLevelIntrinsics.cpp
+++ b/flang/lib/Optimizer/Builder/LowLevelIntrinsics.cpp
@@ -37,19 +37,16 @@ fir::factory::getLlvmSetRounding(fir::FirOpBuilder &builder) {
                                 funcTy);
 }
 
-mlir::func::FuncOp
-fir::factory::getLlvmPpcReadflm(fir::FirOpBuilder &builder) {
+mlir::func::FuncOp fir::factory::getLlvmPpcReadflm(fir::FirOpBuilder &builder) {
   auto f64Ty = builder.getF64Type();
   auto funcTy = mlir::FunctionType::get(builder.getContext(), {}, {f64Ty});
   return builder.createFunction(builder.getUnknownLoc(), "llvm.ppc.readflm",
                                 funcTy);
 }
 
-mlir::func::FuncOp
-fir::factory::getLlvmPpcSetflm(fir::FirOpBuilder &builder) {
+mlir::func::FuncOp fir::factory::getLlvmPpcSetflm(fir::FirOpBuilder &builder) {
   auto f64Ty = builder.getF64Type();
-  auto funcTy =
-      mlir::FunctionType::get(builder.getContext(), {f64Ty}, {f64Ty});
+  auto funcTy = mlir::FunctionType::get(builder.getContext(), {f64Ty}, {f64Ty});
   return builder.createFunction(builder.getUnknownLoc(), "llvm.ppc.setflm",
                                 funcTy);
 }

``````````

</details>


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


More information about the flang-commits mailing list