[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