diff --git a/flang-rt/lib/runtime/exceptions.cpp b/flang-rt/lib/runtime/exceptions.cpp index d25a67c8e9cb..e5ba06c92ca9 100644 --- a/flang-rt/lib/runtime/exceptions.cpp +++ b/flang-rt/lib/runtime/exceptions.cpp @@ -76,22 +76,74 @@ uint32_t RTNAME(MapException)(uint32_t excepts) { return except_value; } +// The following exception processing routines have a libm call component, +// and where available, an additional component for handling the nonstandard +// ieee_denorm exception. The denorm component does not subsume the libm +// component; both are needed. + +void RTNAME(feclearexcept)(uint32_t excepts) { + feclearexcept(excepts); +#if defined(_MM_EXCEPT_DENORM) + _mm_setcsr(_mm_getcsr() & ~(excepts & _MM_EXCEPT_MASK)); +#endif +} +void RTNAME(feraiseexcept)(uint32_t excepts) { + feraiseexcept(excepts); +#if defined(_MM_EXCEPT_DENORM) + _mm_setcsr(_mm_getcsr() | (excepts & _MM_EXCEPT_MASK)); +#endif +} +uint32_t RTNAME(fetestexcept)(uint32_t excepts) { +#if defined(_MM_EXCEPT_DENORM) + return (_mm_getcsr() & _MM_EXCEPT_MASK & excepts) | fetestexcept(excepts); +#else + return fetestexcept(excepts); +#endif +} +void RTNAME(fedisableexcept)(uint32_t excepts) { +#ifdef __USE_GNU + fedisableexcept(excepts); +#endif +#if defined(_MM_EXCEPT_DENORM) + _mm_setcsr(_mm_getcsr() | ((excepts & _MM_EXCEPT_MASK) << 7)); +#endif +} +void RTNAME(feenableexcept)(uint32_t excepts) { +#ifdef __USE_GNU + feenableexcept(excepts); +#endif +#if defined(_MM_EXCEPT_DENORM) + _mm_setcsr(_mm_getcsr() & ~((excepts & _MM_EXCEPT_MASK) << 7)); +#endif +} +uint32_t RTNAME(fegetexcept)() { + uint32_t excepts = 0; +#ifdef __USE_GNU + excepts = fegetexcept(); +#endif +#if defined(_MM_EXCEPT_DENORM) + return (63 - ((_mm_getcsr() >> 7) & _MM_EXCEPT_MASK)) | excepts; +#else + return excepts; +#endif +} + // Check if the processor has the ability to control whether to halt or // continue execution when a given exception is raised. bool RTNAME(SupportHalting)([[maybe_unused]] uint32_t except) { #ifdef __USE_GNU except = RTNAME(MapException)(except); - int currentSet = fegetexcept(), flipSet, ok; + int currentSet = RTNAME(fegetexcept)(), flipSet; if (currentSet & except) { - ok = fedisableexcept(except); - flipSet = fegetexcept(); - ok |= feenableexcept(except); + RTNAME(fedisableexcept)(except); + flipSet = RTNAME(fegetexcept)(); + RTNAME(feenableexcept)(except); } else { - ok = feenableexcept(except); - flipSet = fegetexcept(); - ok |= fedisableexcept(except); + RTNAME(feenableexcept)(except); + flipSet = RTNAME(fegetexcept)(); + RTNAME(fedisableexcept)(except); } - return ok != -1 && currentSet != flipSet; + return currentSet != flipSet; #else return false; #endif diff --git a/flang/include/flang/Evaluate/target.h b/flang/include/flang/Evaluate/target.h index ead4481c32e1..7b1593ca270d 100644 --- a/flang/include/flang/Evaluate/target.h +++ b/flang/include/flang/Evaluate/target.h @@ -54,6 +54,13 @@ public: bool hasSubnormalFlushingControl(bool any = false) const; void set_hasSubnormalFlushingControl(int kind, bool yes = true); + // Check if a given real kind has support for raising a nonstandard + // ieee_denorm exception. + bool hasSubnormalExceptionSupport(int kind) const; + // Check if all real kinds have support for the ieee_denorm exception. + bool hasSubnormalExceptionSupport() const; + void set_hasSubnormalExceptionSupport(int kind, bool yes = true); + Rounding roundingMode() const { return roundingMode_; } void set_roundingMode(Rounding); @@ -134,6 +141,7 @@ private: bool haltingSupportIsUnknownAtCompileTime_{false}; bool areSubnormalsFlushedToZero_{false}; bool hasSubnormalFlushingControl_[maxKind + 1]{}; + bool hasSubnormalExceptionSupport_[maxKind + 1]{}; Rounding roundingMode_{defaultRounding}; std::size_t procedurePointerByteSize_{8}; std::size_t procedurePointerAlignment_{8}; diff --git a/flang/include/flang/Optimizer/Builder/Runtime/Exceptions.h b/flang/include/flang/Optimizer/Builder/Runtime/Exceptions.h index 7487444f3a7a..1d6e29beacb5 100644 --- a/flang/include/flang/Optimizer/Builder/Runtime/Exceptions.h +++ b/flang/include/flang/Optimizer/Builder/Runtime/Exceptions.h @@ -26,6 +26,23 @@ namespace fir::runtime { mlir::Value genMapExcept(fir::FirOpBuilder &builder, mlir::Location loc, mlir::Value excepts); +void genFeclearexcept(fir::FirOpBuilder &builder, mlir::Location loc, + mlir::Value excepts); + +void genFeraiseexcept(fir::FirOpBuilder &builder, mlir::Location loc, + mlir::Value excepts); + +mlir::Value genFetestexcept(fir::FirOpBuilder &builder, mlir::Location loc, + mlir::Value excepts); + +void genFedisableexcept(fir::FirOpBuilder &builder, mlir::Location loc, + mlir::Value excepts); + +void genFeenableexcept(fir::FirOpBuilder &builder, mlir::Location loc, + mlir::Value excepts); + +mlir::Value genFegetexcept(fir::FirOpBuilder &builder, mlir::Location loc); + mlir::Value genSupportHalting(fir::FirOpBuilder &builder, mlir::Location loc, mlir::Value excepts); diff --git a/flang/include/flang/Runtime/exceptions.h b/flang/include/flang/Runtime/exceptions.h index 62c21f01c128..c76376e36ed6 100644 --- a/flang/include/flang/Runtime/exceptions.h +++ b/flang/include/flang/Runtime/exceptions.h @@ -6,7 +6,8 @@ // //===----------------------------------------------------------------------===// -// Map Fortran ieee_arithmetic module exceptions to fenv.h exceptions. +// Support for floating point exceptions and related floating point environment +// functionality. #ifndef FORTRAN_RUNTIME_EXCEPTIONS_H_ #define FORTRAN_RUNTIME_EXCEPTIONS_H_ @@ -25,6 +26,15 @@ extern "C" { // This mapping is done at runtime to support cross compilation. std::uint32_t RTNAME(MapException)(std::uint32_t excepts); +// Exception processing functions that call the corresponding libm functions, +// and also include support for denormal exceptions where available. +void RTNAME(feclearexcept)(std::uint32_t excepts); +void RTNAME(feraiseexcept)(std::uint32_t excepts); +std::uint32_t RTNAME(fetestexcept)(std::uint32_t excepts); +void RTNAME(fedisableexcept)(std::uint32_t excepts); +void RTNAME(feenableexcept)(std::uint32_t excepts); +std::uint32_t RTNAME(fegetexcept)(void); + // Check if the processor has the ability to control whether to halt // or continue exeuction when a given exception is raised. bool RTNAME(SupportHalting)(uint32_t except); diff --git a/flang/include/flang/Tools/TargetSetup.h b/flang/include/flang/Tools/TargetSetup.h index e58221504825..de3fb0519cf6 100644 --- a/flang/include/flang/Tools/TargetSetup.h +++ b/flang/include/flang/Tools/TargetSetup.h @@ -29,6 +29,10 @@ namespace Fortran::tools { targetCharacteristics.set_hasSubnormalFlushingControl(/*kind=*/3); targetCharacteristics.set_hasSubnormalFlushingControl(/*kind=*/4); targetCharacteristics.set_hasSubnormalFlushingControl(/*kind=*/8); + // ieee_denorm exception support is nonstandard. + targetCharacteristics.set_hasSubnormalExceptionSupport(/*kind=*/3); + targetCharacteristics.set_hasSubnormalExceptionSupport(/*kind=*/4); + targetCharacteristics.set_hasSubnormalExceptionSupport(/*kind=*/8); } if (targetTriple.isARM() || targetTriple.isAArch64()) { diff --git a/flang/lib/Evaluate/fold-logical.cpp b/flang/lib/Evaluate/fold-logical.cpp index 2e060ac94e34..6950caf32741 100644 --- a/flang/lib/Evaluate/fold-logical.cpp +++ b/flang/lib/Evaluate/fold-logical.cpp @@ -875,8 +875,38 @@ Expr> FoldIntrinsicFunction( return Expr{context.targetCharacteristics().ieeeFeatures().test( IeeeFeature::Divide)}; } else if (name == "__builtin_ieee_support_flag") { - return Expr{context.targetCharacteristics().ieeeFeatures().test( - IeeeFeature::Flags)}; + if (context.targetCharacteristics().ieeeFeatures().test( + IeeeFeature::Flags)) { + if (args[0]) { + if (const auto *cst{UnwrapExpr>(args[0])}) { + if (auto constr{cst->GetScalarValue()}) { + if (StructureConstructorValues & values{constr->values()}; + values.size() == 1) { + const Expr &value{values.begin()->second.value()}; + if (auto flag{ToInt64(value)}) { + if (flag != _FORTRAN_RUNTIME_IEEE_DENORM) { + // Check for suppport for standard exceptions. + return Expr{ + context.targetCharacteristics().ieeeFeatures().test( + IeeeFeature::Flags)}; + } else if (args[1]) { + // Check for nonstandard ieee_denorm exception support for + // a given kind. + return Expr{context.targetCharacteristics() + .hasSubnormalExceptionSupport( + args[1]->GetType().value().kind())}; + } else { + // Check for nonstandard ieee_denorm exception support for + // all kinds. + return Expr{context.targetCharacteristics() + .hasSubnormalExceptionSupport()}; + } + } + } + } + } + } + } } else if (name == "__builtin_ieee_support_halting") { if (!context.targetCharacteristics() .haltingSupportIsUnknownAtCompileTime()) { diff --git a/flang/lib/Evaluate/target.cpp b/flang/lib/Evaluate/target.cpp index 94dc35ecd590..ba768f38c0ba 100644 --- a/flang/lib/Evaluate/target.cpp +++ b/flang/lib/Evaluate/target.cpp @@ -134,6 +134,30 @@ void TargetCharacteristics::set_hasSubnormalFlushingControl( hasSubnormalFlushingControl_[kind] = yes; } +// Check if a given real kind has (nonstandard) ieee_denorm exception control. +bool TargetCharacteristics::hasSubnormalExceptionSupport(int kind) const { + CHECK(kind > 0 && kind <= maxKind); + CHECK(CanSupportType(TypeCategory::Real, kind)); + return hasSubnormalExceptionSupport_[kind]; +} + +// Check if all real kinds have support for the ieee_denorm exception. +bool TargetCharacteristics::hasSubnormalExceptionSupport() const { + for (int kind{1}; kind <= maxKind; ++kind) { + if (CanSupportType(TypeCategory::Real, kind) && + !hasSubnormalExceptionSupport_[kind]) { + return false; + } + } + return true; +} + +void TargetCharacteristics::set_hasSubnormalExceptionSupport( + int kind, bool yes) { + CHECK(kind > 0 && kind <= maxKind); + hasSubnormalExceptionSupport_[kind] = yes; +} + void TargetCharacteristics::set_roundingMode(Rounding rounding) { roundingMode_ = rounding; } diff --git a/flang/lib/Optimizer/Builder/IntrinsicCall.cpp b/flang/lib/Optimizer/Builder/IntrinsicCall.cpp index f57ed41fd785..25d3ef82b83d 100644 --- a/flang/lib/Optimizer/Builder/IntrinsicCall.cpp +++ b/flang/lib/Optimizer/Builder/IntrinsicCall.cpp @@ -4571,8 +4571,8 @@ void IntrinsicLibrary::genRaiseExcept(int excepts, mlir::Value cond) { builder.setInsertionPointToStart(&ifOp.getThenRegion().front()); } mlir::Type i32Ty = builder.getIntegerType(32); - genRuntimeCall( - "feraiseexcept", i32Ty, + fir::runtime::genFeraiseexcept( + builder, loc, fir::runtime::genMapExcept( builder, loc, builder.createIntegerConstant(loc, i32Ty, excepts))); if (cond) @@ -4939,8 +4939,8 @@ void IntrinsicLibrary::genIeeeGetFlag(llvm::ArrayRef args) { mlir::Value zero = builder.createIntegerConstant(loc, i32Ty, 0); auto [fieldRef, ignore] = getFieldRef(builder, loc, flag); mlir::Value field = builder.create(loc, fieldRef); - mlir::Value excepts = IntrinsicLibrary::genRuntimeCall( - "fetestexcept", i32Ty, + mlir::Value excepts = fir::runtime::genFetestexcept( + builder, loc, fir::runtime::genMapExcept( builder, loc, builder.create(loc, i32Ty, field))); mlir::Value logicalResult = builder.create( @@ -4963,8 +4963,7 @@ void IntrinsicLibrary::genIeeeGetHaltingMode( mlir::Value zero = builder.createIntegerConstant(loc, i32Ty, 0); auto [fieldRef, ignore] = getFieldRef(builder, loc, flag); mlir::Value field = builder.create(loc, fieldRef); - mlir::Value haltSet = - IntrinsicLibrary::genRuntimeCall("fegetexcept", i32Ty, {}); + mlir::Value haltSet = fir::runtime::genFegetexcept(builder, loc); mlir::Value intResult = builder.create( loc, haltSet, fir::runtime::genMapExcept( @@ -5712,9 +5711,11 @@ void IntrinsicLibrary::genIeeeSetFlagOrHaltingMode( loc, builder.create(loc, i1Ty, getBase(args[1])), /*withElseRegion=*/true); builder.setInsertionPointToStart(&ifOp.getThenRegion().front()); - genRuntimeCall(isFlag ? "feraiseexcept" : "feenableexcept", i32Ty, except); + (isFlag ? fir::runtime::genFeraiseexcept : fir::runtime::genFeenableexcept)( + builder, loc, builder.create(loc, i32Ty, except)); builder.setInsertionPointToStart(&ifOp.getElseRegion().front()); - genRuntimeCall(isFlag ? "feclearexcept" : "fedisableexcept", i32Ty, except); + (isFlag ? fir::runtime::genFeclearexcept : fir::runtime::genFedisableexcept)( + builder, loc, builder.create(loc, i32Ty, except)); builder.setInsertionPointAfter(ifOp); } @@ -5805,24 +5806,61 @@ mlir::Value IntrinsicLibrary::genIeeeSignbit(mlir::Type resultType, fir::ExtendedValue IntrinsicLibrary::genIeeeSupportFlag(mlir::Type resultType, llvm::ArrayRef args) { - // Check if a floating point exception flag is supported. A flag is - // supported either for all type kinds or none. An optional kind argument X - // is therefore ignored. Standard flags are all supported. The nonstandard - // DENORM extension is not supported, at least for now. + // Check if a floating point exception flag is supported. assert(args.size() == 1 || args.size() == 2); + mlir::Type i1Ty = builder.getI1Type(); + mlir::Type i32Ty = builder.getIntegerType(32); auto [fieldRef, fieldTy] = getFieldRef(builder, loc, getBase(args[0])); mlir::Value flag = builder.create(loc, fieldRef); - mlir::Value mask = builder.createIntegerConstant( // values are powers of 2 + mlir::Value standardFlagMask = builder.createIntegerConstant( loc, fieldTy, _FORTRAN_RUNTIME_IEEE_INVALID | _FORTRAN_RUNTIME_IEEE_DIVIDE_BY_ZERO | _FORTRAN_RUNTIME_IEEE_OVERFLOW | _FORTRAN_RUNTIME_IEEE_UNDERFLOW | _FORTRAN_RUNTIME_IEEE_INEXACT); - return builder.createConvert( - loc, resultType, - builder.create( - loc, mlir::arith::CmpIPredicate::ne, - builder.create(loc, flag, mask), - builder.createIntegerConstant(loc, fieldTy, 0))); + mlir::Value isStandardFlag = builder.create( + loc, mlir::arith::CmpIPredicate::ne, + builder.create(loc, flag, standardFlagMask), + builder.createIntegerConstant(loc, fieldTy, 0)); + fir::IfOp ifOp = builder.create(loc, i1Ty, isStandardFlag, + /*withElseRegion=*/true); + // Standard flags are supported. + builder.setInsertionPointToStart(&ifOp.getThenRegion().front()); + builder.create(loc, builder.createBool(loc, true)); + + // TargetCharacteristics information for the nonstandard ieee_denorm flag + // is not available here. So use a runtime check restricted to possibly + // supported kinds. + builder.setInsertionPointToStart(&ifOp.getElseRegion().front()); + bool mayBeSupported = false; + if (mlir::Value arg1 = getBase(args[1])) { + mlir::Type arg1Ty = arg1.getType(); + if (fir::ReferenceType refTy = mlir::dyn_cast(arg1Ty)) + arg1Ty = refTy.getEleTy(); + switch (mlir::dyn_cast(arg1Ty).getWidth()) { + case 16: + mayBeSupported = arg1Ty.isBF16(); // kind=3 + break; + case 32: // kind=4 + case 64: // kind=8 + mayBeSupported = true; + break; + } + } + if (mayBeSupported) { + mlir::Value isDenorm = builder.create( + loc, mlir::arith::CmpIPredicate::eq, flag, + builder.createIntegerConstant(loc, fieldTy, + _FORTRAN_RUNTIME_IEEE_DENORM)); + mlir::Value result = builder.create( + loc, isDenorm, + fir::runtime::genSupportHalting( + builder, loc, builder.create(loc, i32Ty, flag))); + builder.create(loc, result); + } else { + builder.create(loc, builder.createBool(loc, false)); + } + builder.setInsertionPointAfter(ifOp); + return builder.createConvert(loc, resultType, ifOp.getResult(0)); } // IEEE_SUPPORT_HALTING @@ -5838,7 +5876,7 @@ fir::ExtendedValue IntrinsicLibrary::genIeeeSupportHalting( return builder.createConvert( loc, resultType, fir::runtime::genSupportHalting( - builder, loc, {builder.create(loc, i32Ty, field)})); + builder, loc, builder.create(loc, i32Ty, field))); } // IEEE_SUPPORT_ROUNDING @@ -5874,10 +5912,10 @@ fir::ExtendedValue IntrinsicLibrary::genIeeeSupportStandard( // if halting control is supported, as that is the only support component // that may not be available. assert(args.size() <= 1); - mlir::Value nearest = builder.createIntegerConstant( - loc, builder.getIntegerType(32), _FORTRAN_RUNTIME_IEEE_NEAREST); + mlir::Value overflow = builder.createIntegerConstant( + loc, builder.getIntegerType(32), _FORTRAN_RUNTIME_IEEE_OVERFLOW); return builder.createConvert( - loc, resultType, fir::runtime::genSupportHalting(builder, loc, nearest)); + loc, resultType, fir::runtime::genSupportHalting(builder, loc, overflow)); } // IEEE_UNORDERED diff --git a/flang/lib/Optimizer/Builder/Runtime/Exceptions.cpp b/flang/lib/Optimizer/Builder/Runtime/Exceptions.cpp index c545b3d00b4d..0f66315696ac 100644 --- a/flang/lib/Optimizer/Builder/Runtime/Exceptions.cpp +++ b/flang/lib/Optimizer/Builder/Runtime/Exceptions.cpp @@ -21,6 +21,49 @@ mlir::Value fir::runtime::genMapExcept(fir::FirOpBuilder &builder, return builder.create(loc, func, excepts).getResult(0); } +void fir::runtime::genFeclearexcept(fir::FirOpBuilder &builder, + mlir::Location loc, mlir::Value excepts) { + mlir::func::FuncOp func{ + fir::runtime::getRuntimeFunc(loc, builder)}; + builder.create(loc, func, excepts); +} + +void fir::runtime::genFeraiseexcept(fir::FirOpBuilder &builder, + mlir::Location loc, mlir::Value excepts) { + mlir::func::FuncOp func{ + fir::runtime::getRuntimeFunc(loc, builder)}; + builder.create(loc, func, excepts); +} + +mlir::Value fir::runtime::genFetestexcept(fir::FirOpBuilder &builder, + mlir::Location loc, + mlir::Value excepts) { + mlir::func::FuncOp func{ + fir::runtime::getRuntimeFunc(loc, builder)}; + return builder.create(loc, func, excepts).getResult(0); +} + +void fir::runtime::genFedisableexcept(fir::FirOpBuilder &builder, + mlir::Location loc, mlir::Value excepts) { + mlir::func::FuncOp func{ + fir::runtime::getRuntimeFunc(loc, builder)}; + builder.create(loc, func, excepts); +} + +void fir::runtime::genFeenableexcept(fir::FirOpBuilder &builder, + mlir::Location loc, mlir::Value excepts) { + mlir::func::FuncOp func{ + fir::runtime::getRuntimeFunc(loc, builder)}; + builder.create(loc, func, excepts); +} + +mlir::Value fir::runtime::genFegetexcept(fir::FirOpBuilder &builder, + mlir::Location loc) { + mlir::func::FuncOp func{ + fir::runtime::getRuntimeFunc(loc, builder)}; + return builder.create(loc, func).getResult(0); +} + mlir::Value fir::runtime::genSupportHalting(fir::FirOpBuilder &builder, mlir::Location loc, mlir::Value excepts) { diff --git a/flang/test/Lower/Intrinsics/ieee_compare.f90 b/flang/test/Lower/Intrinsics/ieee_compare.f90 index 4249e4d16416..b1b864b8f44c 100644 --- a/flang/test/Lower/Intrinsics/ieee_compare.f90 +++ b/flang/test/Lower/Intrinsics/ieee_compare.f90 @@ -42,7 +42,7 @@ program p ! CHECK: %[[V_185:[0-9]+]] = arith.cmpf oeq, %[[V_180]], %[[V_181]] {{.*}} : f32 ! CHECK: fir.if %[[V_184]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_186:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_153]], %[[V_185]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [Q]', x(i), 'eq', x(j), ieee_quiet_eq(x(i), x(j)) @@ -63,7 +63,7 @@ program p ! CHECK: %[[V_217:[0-9]+]] = arith.cmpf oge, %[[V_212]], %[[V_213]] {{.*}} : f32 ! CHECK: fir.if %[[V_216]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_218:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_188]], %[[V_217]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [Q]', x(i), 'ge', x(j), ieee_quiet_ge(x(i), x(j)) @@ -84,7 +84,7 @@ program p ! CHECK: %[[V_249:[0-9]+]] = arith.cmpf ogt, %[[V_244]], %[[V_245]] {{.*}} : f32 ! CHECK: fir.if %[[V_248]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_250:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_220]], %[[V_249]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [Q]', x(i), 'gt', x(j), ieee_quiet_gt(x(i), x(j)) @@ -105,7 +105,7 @@ program p ! CHECK: %[[V_281:[0-9]+]] = arith.cmpf ole, %[[V_276]], %[[V_277]] {{.*}} : f32 ! CHECK: fir.if %[[V_280]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_282:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_252]], %[[V_281]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [Q]', x(i), 'le', x(j), ieee_quiet_le(x(i), x(j)) @@ -126,7 +126,7 @@ program p ! CHECK: %[[V_313:[0-9]+]] = arith.cmpf olt, %[[V_308]], %[[V_309]] {{.*}} : f32 ! CHECK: fir.if %[[V_312]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_314:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_284]], %[[V_313]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [Q]', x(i), 'lt', x(j), ieee_quiet_lt(x(i), x(j)) @@ -147,7 +147,7 @@ program p ! CHECK: %[[V_345:[0-9]+]] = arith.cmpf une, %[[V_340]], %[[V_341]] {{.*}} : f32 ! CHECK: fir.if %[[V_344]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_346:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_316]], %[[V_345]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [Q]', x(i), 'ne', x(j), ieee_quiet_ne(x(i), x(j)) @@ -166,7 +166,7 @@ program p ! CHECK: %[[V_375:[0-9]+]] = arith.cmpf oeq, %[[V_372]], %[[V_373]] {{.*}} : f32 ! CHECK: fir.if %[[V_374]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_376:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_348]], %[[V_375]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [S]', x(i), 'eq', x(j), ieee_signaling_eq(x(i), x(j)) @@ -185,7 +185,7 @@ program p ! CHECK: %[[V_404:[0-9]+]] = arith.cmpf oge, %[[V_401]], %[[V_402]] {{.*}} : f32 ! CHECK: fir.if %[[V_403]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_405:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_378]], %[[V_404]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [S]', x(i), 'ge', x(j), ieee_signaling_ge(x(i), x(j)) @@ -204,7 +204,7 @@ program p ! CHECK: %[[V_433:[0-9]+]] = arith.cmpf ogt, %[[V_430]], %[[V_431]] {{.*}} : f32 ! CHECK: fir.if %[[V_432]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_434:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_407]], %[[V_433]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [S]', x(i), 'gt', x(j), ieee_signaling_gt(x(i), x(j)) @@ -223,7 +223,7 @@ program p ! CHECK: %[[V_462:[0-9]+]] = arith.cmpf ole, %[[V_459]], %[[V_460]] {{.*}} : f32 ! CHECK: fir.if %[[V_461]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_463:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_436]], %[[V_462]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [S]', x(i), 'le', x(j), ieee_signaling_le(x(i), x(j)) @@ -242,7 +242,7 @@ program p ! CHECK: %[[V_491:[0-9]+]] = arith.cmpf olt, %[[V_488]], %[[V_489]] {{.*}} : f32 ! CHECK: fir.if %[[V_490]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_492:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_465]], %[[V_491]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [S]', x(i), 'lt', x(j), ieee_signaling_lt(x(i), x(j)) @@ -261,7 +261,7 @@ program p ! CHECK: %[[V_520:[0-9]+]] = arith.cmpf une, %[[V_517]], %[[V_518]] {{.*}} : f32 ! CHECK: fir.if %[[V_519]] { ! CHECK: %[[V_526:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_527:[0-9]+]] = fir.call @feraiseexcept(%[[V_526]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_526]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_521:[0-9]+]] = fir.call @_FortranAioOutputLogical(%[[V_494]], %[[V_520]]) fastmath : (!fir.ref, i1) -> i1 print*, ' [S]', x(i), 'ne', x(j), ieee_signaling_ne(x(i), x(j)) diff --git a/flang/test/Lower/Intrinsics/ieee_flag.f90 b/flang/test/Lower/Intrinsics/ieee_flag.f90 index 13ca7ba48a74..0147cb1a9713 100644 --- a/flang/test/Lower/Intrinsics/ieee_flag.f90 +++ b/flang/test/Lower/Intrinsics/ieee_flag.f90 @@ -38,9 +38,9 @@ ! CHECK: %[[V_98:[0-9]+]] = fir.convert %[[V_97]] : (i8) -> i32 ! CHECK: %[[V_99:[0-9]+]] = fir.call @_FortranAMapException(%[[V_98]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_310:[0-9]+]] = fir.call @feraiseexcept(%[[V_99]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_99]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_310:[0-9]+]] = fir.call @feclearexcept(%[[V_99]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_99]]) fastmath : (i32) ! CHECK: } call ieee_set_flag(ieee_invalid, .false.) @@ -49,7 +49,7 @@ ! CHECK: %[[V_102:[0-9]+]] = fir.load %[[V_101]] : !fir.ref ! CHECK: %[[V_103:[0-9]+]] = fir.convert %[[V_102]] : (i8) -> i32 ! CHECK: %[[V_104:[0-9]+]] = fir.call @_FortranAMapException(%[[V_103]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_105:[0-9]+]] = fir.call @fetestexcept(%[[V_104]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_105:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_104]]) fastmath : (i32) -> i32 ! CHECK: %[[V_106:[0-9]+]] = arith.cmpi ne, %[[V_105]], %c0{{.*}} : i32 ! CHECK: %[[V_107:[0-9]+]] = fir.convert %[[V_106]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_107]] to %[[V_57]] : !fir.ref> @@ -64,9 +64,9 @@ ! CHECK: %[[V_121:[0-9]+]] = fir.convert %[[V_120]] : (i8) -> i32 ! CHECK: %[[V_122:[0-9]+]] = fir.call @_FortranAMapException(%[[V_121]]) fastmath : (i32) -> i32 ! CHECK: fir.if %true{{[_0-9]*}} { - ! CHECK: %[[V_310:[0-9]+]] = fir.call @feraiseexcept(%[[V_122]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_122]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_310:[0-9]+]] = fir.call @feclearexcept(%[[V_122]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_122]]) fastmath : (i32) ! CHECK: } call ieee_set_flag(ieee_invalid, .true.) @@ -75,7 +75,7 @@ ! CHECK: %[[V_125:[0-9]+]] = fir.load %[[V_124]] : !fir.ref ! CHECK: %[[V_126:[0-9]+]] = fir.convert %[[V_125]] : (i8) -> i32 ! CHECK: %[[V_127:[0-9]+]] = fir.call @_FortranAMapException(%[[V_126]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_128:[0-9]+]] = fir.call @fetestexcept(%[[V_127]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_128:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_127]]) fastmath : (i32) -> i32 ! CHECK: %[[V_129:[0-9]+]] = arith.cmpi ne, %[[V_128]], %c0{{.*}} : i32 ! CHECK: %[[V_130:[0-9]+]] = fir.convert %[[V_129]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_130]] to %[[V_57]] : !fir.ref> @@ -93,9 +93,9 @@ ! CHECK: %[[V_313:[0-9]+]] = fir.convert %[[V_312]] : (i8) -> i32 ! CHECK: %[[V_314:[0-9]+]] = fir.call @_FortranAMapException(%[[V_313]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @feraiseexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @feclearexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } ! CHECK: } call ieee_set_flag([ieee_invalid, ieee_overflow], .false.) @@ -109,7 +109,7 @@ ! CHECK: %[[V_313:[0-9]+]] = fir.load %[[V_312]] : !fir.ref ! CHECK: %[[V_314:[0-9]+]] = fir.convert %[[V_313]] : (i8) -> i32 ! CHECK: %[[V_315:[0-9]+]] = fir.call @_FortranAMapException(%[[V_314]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_316:[0-9]+]] = fir.call @fetestexcept(%[[V_315]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_316:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = arith.cmpi ne, %[[V_316]], %c0{{.*}} : i32 ! CHECK: %[[V_318:[0-9]+]] = fir.convert %[[V_317]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_318]] to %[[V_311]] : !fir.ref> @@ -132,9 +132,9 @@ ! CHECK: %[[V_316:[0-9]+]] = fir.call @_FortranAMapException(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = fir.convert %[[V_312]] : (!fir.logical<4>) -> i1 ! CHECK: fir.if %[[V_317]] { - ! CHECK: %[[V_318:[0-9]+]] = fir.call @feraiseexcept(%[[V_316]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_316]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_318:[0-9]+]] = fir.call @feclearexcept(%[[V_316]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_316]]) fastmath : (i32) ! CHECK: } ! CHECK: } call ieee_set_flag([ieee_invalid, ieee_overflow], [.false., .true.]) @@ -147,7 +147,7 @@ ! CHECK: %[[V_313:[0-9]+]] = fir.load %[[V_312]] : !fir.ref ! CHECK: %[[V_314:[0-9]+]] = fir.convert %[[V_313]] : (i8) -> i32 ! CHECK: %[[V_315:[0-9]+]] = fir.call @_FortranAMapException(%[[V_314]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_316:[0-9]+]] = fir.call @fetestexcept(%[[V_315]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_316:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = arith.cmpi ne, %[[V_316]], %c0{{.*}} : i32 ! CHECK: %[[V_318:[0-9]+]] = fir.convert %[[V_317]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_318]] to %[[V_311]] : !fir.ref> @@ -166,9 +166,9 @@ ! CHECK: %[[V_313:[0-9]+]] = fir.convert %[[V_312]] : (i8) -> i32 ! CHECK: %[[V_314:[0-9]+]] = fir.call @_FortranAMapException(%[[V_313]]) fastmath : (i32) -> i32 ! CHECK: fir.if %true{{[_0-9]*}} { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @feraiseexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @feclearexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } ! CHECK: } call ieee_set_flag(ieee_usual, .true.) @@ -181,7 +181,7 @@ ! CHECK: %[[V_313:[0-9]+]] = fir.load %[[V_312]] : !fir.ref ! CHECK: %[[V_314:[0-9]+]] = fir.convert %[[V_313]] : (i8) -> i32 ! CHECK: %[[V_315:[0-9]+]] = fir.call @_FortranAMapException(%[[V_314]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_316:[0-9]+]] = fir.call @fetestexcept(%[[V_315]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_316:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = arith.cmpi ne, %[[V_316]], %c0{{.*}} : i32 ! CHECK: %[[V_318:[0-9]+]] = fir.convert %[[V_317]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_318]] to %[[V_311]] : !fir.ref> @@ -204,9 +204,9 @@ ! CHECK: %[[V_316:[0-9]+]] = fir.call @_FortranAMapException(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = fir.convert %[[V_312]] : (!fir.logical<4>) -> i1 ! CHECK: fir.if %[[V_317]] { - ! CHECK: %[[V_318:[0-9]+]] = fir.call @feraiseexcept(%[[V_316]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_316]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_318:[0-9]+]] = fir.call @feclearexcept(%[[V_316]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_316]]) fastmath : (i32) ! CHECK: } ! CHECK: } call ieee_set_flag(ieee_usual, [.true., .false., .true.]) @@ -219,7 +219,7 @@ ! CHECK: %[[V_313:[0-9]+]] = fir.load %[[V_312]] : !fir.ref ! CHECK: %[[V_314:[0-9]+]] = fir.convert %[[V_313]] : (i8) -> i32 ! CHECK: %[[V_315:[0-9]+]] = fir.call @_FortranAMapException(%[[V_314]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_316:[0-9]+]] = fir.call @fetestexcept(%[[V_315]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_316:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = arith.cmpi ne, %[[V_316]], %c0{{.*}} : i32 ! CHECK: %[[V_318:[0-9]+]] = fir.convert %[[V_317]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_318]] to %[[V_311]] : !fir.ref> @@ -238,9 +238,9 @@ ! CHECK: %[[V_313:[0-9]+]] = fir.convert %[[V_312]] : (i8) -> i32 ! CHECK: %[[V_314:[0-9]+]] = fir.call @_FortranAMapException(%[[V_313]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @feraiseexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @feclearexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } ! CHECK: } call ieee_set_flag(ieee_all, .false.) @@ -253,7 +253,7 @@ ! CHECK: %[[V_313:[0-9]+]] = fir.load %[[V_312]] : !fir.ref ! CHECK: %[[V_314:[0-9]+]] = fir.convert %[[V_313]] : (i8) -> i32 ! CHECK: %[[V_315:[0-9]+]] = fir.call @_FortranAMapException(%[[V_314]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_316:[0-9]+]] = fir.call @fetestexcept(%[[V_315]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_316:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = arith.cmpi ne, %[[V_316]], %c0{{.*}} : i32 ! CHECK: %[[V_318:[0-9]+]] = fir.convert %[[V_317]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_318]] to %[[V_311]] : !fir.ref> @@ -279,16 +279,16 @@ ! CHECK: %[[V_225:[0-9]+]] = fir.convert %[[V_224]] : (i8) -> i32 ! CHECK: %[[V_226:[0-9]+]] = fir.call @_FortranAMapException(%[[V_225]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_310:[0-9]+]] = fir.call @feenableexcept(%[[V_226]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feenableexcept(%[[V_226]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_310:[0-9]+]] = fir.call @fedisableexcept(%[[V_226]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}fedisableexcept(%[[V_226]]) fastmath : (i32) ! CHECK: } call ieee_set_halting_mode(ieee_invalid, .false.) ! CHECK: %[[V_227:[0-9]+]] = fir.declare %[[V_80]] {fortran_attrs = #fir.var_attrs, uniq_name = "_QQro._QM__fortran_builtinsT__builtin_ieee_flag_type.0"} : (!fir.ref>) -> !fir.ref> ! CHECK: %[[V_228:[0-9]+]] = fir.coordinate_of %[[V_227]], _QM__fortran_builtinsT__builtin_ieee_flag_type.flag : (!fir.ref>) -> !fir.ref ! CHECK: %[[V_229:[0-9]+]] = fir.load %[[V_228]] : !fir.ref - ! CHECK: %[[V_230:[0-9]+]] = fir.call @fegetexcept() fastmath : () -> i32 + ! CHECK: %[[V_230:[0-9]+]] = fir.call {{.*}}fegetexcept() fastmath : () -> i32 ! CHECK: %[[V_231:[0-9]+]] = fir.convert %[[V_229]] : (i8) -> i32 ! CHECK: %[[V_232:[0-9]+]] = fir.call @_FortranAMapException(%[[V_231]]) fastmath : (i32) -> i32 ! CHECK: %[[V_233:[0-9]+]] = arith.andi %[[V_230]], %[[V_232]] : i32 @@ -306,16 +306,16 @@ ! CHECK: %[[V_247:[0-9]+]] = fir.convert %[[V_246]] : (i8) -> i32 ! CHECK: %[[V_248:[0-9]+]] = fir.call @_FortranAMapException(%[[V_247]]) fastmath : (i32) -> i32 ! CHECK: fir.if %true{{[_0-9]*}} { - ! CHECK: %[[V_310:[0-9]+]] = fir.call @feenableexcept(%[[V_248]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feenableexcept(%[[V_248]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_310:[0-9]+]] = fir.call @fedisableexcept(%[[V_248]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}fedisableexcept(%[[V_248]]) fastmath : (i32) ! CHECK: } call ieee_set_halting_mode(ieee_invalid, .true.) ! CHECK: %[[V_249:[0-9]+]] = fir.declare %[[V_80]] {fortran_attrs = #fir.var_attrs, uniq_name = "_QQro._QM__fortran_builtinsT__builtin_ieee_flag_type.0"} : (!fir.ref>) -> !fir.ref> ! CHECK: %[[V_250:[0-9]+]] = fir.coordinate_of %[[V_249]], _QM__fortran_builtinsT__builtin_ieee_flag_type.flag : (!fir.ref>) -> !fir.ref ! CHECK: %[[V_251:[0-9]+]] = fir.load %[[V_250]] : !fir.ref - ! CHECK: %[[V_252:[0-9]+]] = fir.call @fegetexcept() fastmath : () -> i32 + ! CHECK: %[[V_252:[0-9]+]] = fir.call {{.*}}fegetexcept() fastmath : () -> i32 ! CHECK: %[[V_253:[0-9]+]] = fir.convert %[[V_251]] : (i8) -> i32 ! CHECK: %[[V_254:[0-9]+]] = fir.call @_FortranAMapException(%[[V_253]]) fastmath : (i32) -> i32 ! CHECK: %[[V_255:[0-9]+]] = arith.andi %[[V_252]], %[[V_254]] : i32 @@ -335,9 +335,9 @@ ! CHECK: %[[V_313:[0-9]+]] = fir.convert %[[V_312]] : (i8) -> i32 ! CHECK: %[[V_314:[0-9]+]] = fir.call @_FortranAMapException(%[[V_313]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @feenableexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feenableexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @fedisableexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}fedisableexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } ! CHECK: } call ieee_set_halting_mode([ieee_invalid, ieee_overflow], .false.) @@ -348,7 +348,7 @@ ! CHECK: %[[V_311:[0-9]+]] = fir.array_coor %[[V_60]](%[[V_59]]) %arg0 : (!fir.ref>>, !fir.shape<1>, index) -> !fir.ref> ! CHECK: %[[V_312:[0-9]+]] = fir.coordinate_of %[[V_310]], _QM__fortran_builtinsT__builtin_ieee_flag_type.flag : (!fir.ref>) -> !fir.ref ! CHECK: %[[V_313:[0-9]+]] = fir.load %[[V_312]] : !fir.ref - ! CHECK: %[[V_314:[0-9]+]] = fir.call @fegetexcept() fastmath : () -> i32 + ! CHECK: %[[V_314:[0-9]+]] = fir.call {{.*}}fegetexcept() fastmath : () -> i32 ! CHECK: %[[V_315:[0-9]+]] = fir.convert %[[V_313]] : (i8) -> i32 ! CHECK: %[[V_316:[0-9]+]] = fir.call @_FortranAMapException(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = arith.andi %[[V_314]], %[[V_316]] : i32 @@ -373,9 +373,9 @@ ! CHECK: %[[V_316:[0-9]+]] = fir.call @_FortranAMapException(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = fir.convert %[[V_312]] : (!fir.logical<4>) -> i1 ! CHECK: fir.if %[[V_317]] { - ! CHECK: %[[V_318:[0-9]+]] = fir.call @feenableexcept(%[[V_316]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feenableexcept(%[[V_316]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_318:[0-9]+]] = fir.call @fedisableexcept(%[[V_316]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}fedisableexcept(%[[V_316]]) fastmath : (i32) ! CHECK: } ! CHECK: } call ieee_set_halting_mode([ieee_invalid, ieee_overflow], [.false., .true.]) @@ -386,7 +386,7 @@ ! CHECK: %[[V_311:[0-9]+]] = fir.array_coor %[[V_60]](%[[V_59]]) %arg0 : (!fir.ref>>, !fir.shape<1>, index) -> !fir.ref> ! CHECK: %[[V_312:[0-9]+]] = fir.coordinate_of %[[V_310]], _QM__fortran_builtinsT__builtin_ieee_flag_type.flag : (!fir.ref>) -> !fir.ref ! CHECK: %[[V_313:[0-9]+]] = fir.load %[[V_312]] : !fir.ref - ! CHECK: %[[V_314:[0-9]+]] = fir.call @fegetexcept() fastmath : () -> i32 + ! CHECK: %[[V_314:[0-9]+]] = fir.call {{.*}}fegetexcept() fastmath : () -> i32 ! CHECK: %[[V_315:[0-9]+]] = fir.convert %[[V_313]] : (i8) -> i32 ! CHECK: %[[V_316:[0-9]+]] = fir.call @_FortranAMapException(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = arith.andi %[[V_314]], %[[V_316]] : i32 @@ -407,9 +407,9 @@ ! CHECK: %[[V_313:[0-9]+]] = fir.convert %[[V_312]] : (i8) -> i32 ! CHECK: %[[V_314:[0-9]+]] = fir.call @_FortranAMapException(%[[V_313]]) fastmath : (i32) -> i32 ! CHECK: fir.if %true{{[_0-9]*}} { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @feenableexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feenableexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @fedisableexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}fedisableexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } ! CHECK: } call ieee_set_halting_mode(ieee_usual, .true.) @@ -420,7 +420,7 @@ ! CHECK: %[[V_311:[0-9]+]] = fir.array_coor %[[V_64]](%[[V_54]]) %arg0 : (!fir.ref>>, !fir.shape<1>, index) -> !fir.ref> ! CHECK: %[[V_312:[0-9]+]] = fir.coordinate_of %[[V_310]], _QM__fortran_builtinsT__builtin_ieee_flag_type.flag : (!fir.ref>) -> !fir.ref ! CHECK: %[[V_313:[0-9]+]] = fir.load %[[V_312]] : !fir.ref - ! CHECK: %[[V_314:[0-9]+]] = fir.call @fegetexcept() fastmath : () -> i32 + ! CHECK: %[[V_314:[0-9]+]] = fir.call {{.*}}fegetexcept() fastmath : () -> i32 ! CHECK: %[[V_315:[0-9]+]] = fir.convert %[[V_313]] : (i8) -> i32 ! CHECK: %[[V_316:[0-9]+]] = fir.call @_FortranAMapException(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = arith.andi %[[V_314]], %[[V_316]] : i32 @@ -445,9 +445,9 @@ ! CHECK: %[[V_316:[0-9]+]] = fir.call @_FortranAMapException(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = fir.convert %[[V_312]] : (!fir.logical<4>) -> i1 ! CHECK: fir.if %[[V_317]] { - ! CHECK: %[[V_318:[0-9]+]] = fir.call @feenableexcept(%[[V_316]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feenableexcept(%[[V_316]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_318:[0-9]+]] = fir.call @fedisableexcept(%[[V_316]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}fedisableexcept(%[[V_316]]) fastmath : (i32) ! CHECK: } ! CHECK: } call ieee_set_halting_mode(ieee_usual, [.true., .false., .true.]) @@ -458,7 +458,7 @@ ! CHECK: %[[V_311:[0-9]+]] = fir.array_coor %[[V_64]](%[[V_54]]) %arg0 : (!fir.ref>>, !fir.shape<1>, index) -> !fir.ref> ! CHECK: %[[V_312:[0-9]+]] = fir.coordinate_of %[[V_310]], _QM__fortran_builtinsT__builtin_ieee_flag_type.flag : (!fir.ref>) -> !fir.ref ! CHECK: %[[V_313:[0-9]+]] = fir.load %[[V_312]] : !fir.ref - ! CHECK: %[[V_314:[0-9]+]] = fir.call @fegetexcept() fastmath : () -> i32 + ! CHECK: %[[V_314:[0-9]+]] = fir.call {{.*}}fegetexcept() fastmath : () -> i32 ! CHECK: %[[V_315:[0-9]+]] = fir.convert %[[V_313]] : (i8) -> i32 ! CHECK: %[[V_316:[0-9]+]] = fir.call @_FortranAMapException(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = arith.andi %[[V_314]], %[[V_316]] : i32 @@ -479,9 +479,9 @@ ! CHECK: %[[V_313:[0-9]+]] = fir.convert %[[V_312]] : (i8) -> i32 ! CHECK: %[[V_314:[0-9]+]] = fir.call @_FortranAMapException(%[[V_313]]) fastmath : (i32) -> i32 ! CHECK: fir.if %true{{[_0-9]*}} { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @feenableexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feenableexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_315:[0-9]+]] = fir.call @fedisableexcept(%[[V_314]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}fedisableexcept(%[[V_314]]) fastmath : (i32) ! CHECK: } ! CHECK: } call ieee_set_halting_mode(ieee_all, .true.) @@ -492,7 +492,7 @@ ! CHECK: %[[V_311:[0-9]+]] = fir.array_coor %[[V_62]](%[[V_1]]) %arg0 : (!fir.ref>>, !fir.shape<1>, index) -> !fir.ref> ! CHECK: %[[V_312:[0-9]+]] = fir.coordinate_of %[[V_310]], _QM__fortran_builtinsT__builtin_ieee_flag_type.flag : (!fir.ref>) -> !fir.ref ! CHECK: %[[V_313:[0-9]+]] = fir.load %[[V_312]] : !fir.ref - ! CHECK: %[[V_314:[0-9]+]] = fir.call @fegetexcept() fastmath : () -> i32 + ! CHECK: %[[V_314:[0-9]+]] = fir.call {{.*}}fegetexcept() fastmath : () -> i32 ! CHECK: %[[V_315:[0-9]+]] = fir.convert %[[V_313]] : (i8) -> i32 ! CHECK: %[[V_316:[0-9]+]] = fir.call @_FortranAMapException(%[[V_315]]) fastmath : (i32) -> i32 ! CHECK: %[[V_317:[0-9]+]] = arith.andi %[[V_314]], %[[V_316]] : i32 diff --git a/flang/test/Lower/Intrinsics/ieee_logb.f90 b/flang/test/Lower/Intrinsics/ieee_logb.f90 index d9252e22a5f9..4d32d9519619 100644 --- a/flang/test/Lower/Intrinsics/ieee_logb.f90 +++ b/flang/test/Lower/Intrinsics/ieee_logb.f90 @@ -20,9 +20,9 @@ subroutine out(x) ! CHECK: %[[V_70:[0-9]+]] = fir.convert %[[V_69]] : (i8) -> i32 ! CHECK: %[[V_71:[0-9]+]] = fir.call @_FortranAMapException(%[[V_70]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_101:[0-9]+]] = fir.call @feraiseexcept(%[[V_71]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_71]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_101:[0-9]+]] = fir.call @feclearexcept(%[[V_71]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_71]]) fastmath : (i32) ! CHECK: } call ieee_set_flag(ieee_divide_by_zero, .false.) @@ -31,7 +31,7 @@ subroutine out(x) ! CHECK: %[[V_74:[0-9]+]] = arith.cmpf oeq, %[[V_72]], %cst{{[_0-9]*}} {{.*}} : f64 ! CHECK: %[[V_75:[0-9]+]] = fir.if %[[V_74]] -> (f64) { ! CHECK: %[[V_101:[0-9]+]] = fir.call @_FortranAMapException(%c4{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_102:[0-9]+]] = fir.call @feraiseexcept(%[[V_101]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_101]]) fastmath : (i32) ! CHECK: fir.result %cst{{[_0-9]*}} : f64 ! CHECK: } else { ! CHECK: %[[V_101:[0-9]+]] = arith.shli %[[V_73]], %c1{{.*}} : i64 @@ -56,7 +56,7 @@ subroutine out(x) ! CHECK: %[[V_78:[0-9]+]] = fir.load %[[V_77]] : !fir.ref ! CHECK: %[[V_79:[0-9]+]] = fir.convert %[[V_78]] : (i8) -> i32 ! CHECK: %[[V_80:[0-9]+]] = fir.call @_FortranAMapException(%[[V_79]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_81:[0-9]+]] = fir.call @fetestexcept(%[[V_80]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_81:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_80]]) fastmath : (i32) -> i32 ! CHECK: %[[V_82:[0-9]+]] = arith.cmpi ne, %[[V_81]], %c0{{.*}} : i32 ! CHECK: %[[V_83:[0-9]+]] = fir.convert %[[V_82]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_83]] to %[[V_61]] : !fir.ref> diff --git a/flang/test/Lower/Intrinsics/ieee_max_min.f90 b/flang/test/Lower/Intrinsics/ieee_max_min.f90 index 581f3d6c7f52..53371415b1d6 100644 --- a/flang/test/Lower/Intrinsics/ieee_max_min.f90 +++ b/flang/test/Lower/Intrinsics/ieee_max_min.f90 @@ -74,9 +74,9 @@ program p ! CHECK: %[[V_206:[0-9]+]] = fir.convert %[[V_205]] : (i8) -> i32 ! CHECK: %[[V_207:[0-9]+]] = fir.call @_FortranAMapException(%[[V_206]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feraiseexcept(%[[V_207]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_207]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feclearexcept(%[[V_207]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_207]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_208:[0-9]+]] = fir.load %[[V_17]] : !fir.ref ! CHECK: %[[V_209:[0-9]+]] = fir.load %[[V_19]] : !fir.ref @@ -102,7 +102,7 @@ program p ! CHECK: %[[V_701:[0-9]+]] = arith.ori %[[V_700]], %[[V_699]] : i1 ! CHECK: fir.if %[[V_701]] { ! CHECK: %[[V_702:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_703:[0-9]+]] = fir.call @feraiseexcept(%[[V_702]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_702]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_698]] : f32 ! CHECK: } @@ -116,7 +116,7 @@ program p ! CHECK: %[[V_214:[0-9]+]] = fir.load %[[V_213]] : !fir.ref ! CHECK: %[[V_215:[0-9]+]] = fir.convert %[[V_214]] : (i8) -> i32 ! CHECK: %[[V_216:[0-9]+]] = fir.call @_FortranAMapException(%[[V_215]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_217:[0-9]+]] = fir.call @fetestexcept(%[[V_216]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_217:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_216]]) fastmath : (i32) -> i32 ! CHECK: %[[V_218:[0-9]+]] = arith.cmpi ne, %[[V_217]], %c0{{.*}} : i32 ! CHECK: %[[V_219:[0-9]+]] = fir.convert %[[V_218]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_219]] to %[[V_21]] : !fir.ref> @@ -131,9 +131,9 @@ program p ! CHECK: %[[V_271:[0-9]+]] = fir.convert %[[V_270]] : (i8) -> i32 ! CHECK: %[[V_272:[0-9]+]] = fir.call @_FortranAMapException(%[[V_271]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feraiseexcept(%[[V_272]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_272]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feclearexcept(%[[V_272]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_272]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_273:[0-9]+]] = fir.load %[[V_17]] : !fir.ref ! CHECK: %[[V_274:[0-9]+]] = fir.load %[[V_19]] : !fir.ref @@ -161,7 +161,7 @@ program p ! CHECK: %[[V_701:[0-9]+]] = arith.ori %[[V_700]], %[[V_699]] : i1 ! CHECK: fir.if %[[V_701]] { ! CHECK: %[[V_702:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_703:[0-9]+]] = fir.call @feraiseexcept(%[[V_702]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_702]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_698]] : f32 ! CHECK: } @@ -175,7 +175,7 @@ program p ! CHECK: %[[V_281:[0-9]+]] = fir.load %[[V_280]] : !fir.ref ! CHECK: %[[V_282:[0-9]+]] = fir.convert %[[V_281]] : (i8) -> i32 ! CHECK: %[[V_283:[0-9]+]] = fir.call @_FortranAMapException(%[[V_282]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_284:[0-9]+]] = fir.call @fetestexcept(%[[V_283]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_284:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_283]]) fastmath : (i32) -> i32 ! CHECK: %[[V_285:[0-9]+]] = arith.cmpi ne, %[[V_284]], %c0{{.*}} : i32 ! CHECK: %[[V_286:[0-9]+]] = fir.convert %[[V_285]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_286]] to %[[V_21]] : !fir.ref> @@ -190,9 +190,9 @@ program p ! CHECK: %[[V_332:[0-9]+]] = fir.convert %[[V_331]] : (i8) -> i32 ! CHECK: %[[V_333:[0-9]+]] = fir.call @_FortranAMapException(%[[V_332]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feraiseexcept(%[[V_333]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_333]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feclearexcept(%[[V_333]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_333]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_334:[0-9]+]] = fir.load %[[V_17]] : !fir.ref ! CHECK: %[[V_335:[0-9]+]] = fir.load %[[V_19]] : !fir.ref @@ -222,7 +222,7 @@ program p ! CHECK: %[[V_705:[0-9]+]] = arith.ori %[[V_704]], %[[V_703]] : i1 ! CHECK: fir.if %[[V_705]] { ! CHECK: %[[V_706:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_707:[0-9]+]] = fir.call @feraiseexcept(%[[V_706]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_706]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_702]] : f32 ! CHECK: } @@ -236,7 +236,7 @@ program p ! CHECK: %[[V_340:[0-9]+]] = fir.load %[[V_339]] : !fir.ref ! CHECK: %[[V_341:[0-9]+]] = fir.convert %[[V_340]] : (i8) -> i32 ! CHECK: %[[V_342:[0-9]+]] = fir.call @_FortranAMapException(%[[V_341]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_343:[0-9]+]] = fir.call @fetestexcept(%[[V_342]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_343:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_342]]) fastmath : (i32) -> i32 ! CHECK: %[[V_344:[0-9]+]] = arith.cmpi ne, %[[V_343]], %c0{{.*}} : i32 ! CHECK: %[[V_345:[0-9]+]] = fir.convert %[[V_344]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_345]] to %[[V_21]] : !fir.ref> @@ -251,9 +251,9 @@ program p ! CHECK: %[[V_391:[0-9]+]] = fir.convert %[[V_390]] : (i8) -> i32 ! CHECK: %[[V_392:[0-9]+]] = fir.call @_FortranAMapException(%[[V_391]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feraiseexcept(%[[V_392]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_392]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feclearexcept(%[[V_392]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_392]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_393:[0-9]+]] = fir.load %[[V_17]] : !fir.ref ! CHECK: %[[V_394:[0-9]+]] = fir.load %[[V_19]] : !fir.ref @@ -285,7 +285,7 @@ program p ! CHECK: %[[V_705:[0-9]+]] = arith.ori %[[V_704]], %[[V_703]] : i1 ! CHECK: fir.if %[[V_705]] { ! CHECK: %[[V_706:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_707:[0-9]+]] = fir.call @feraiseexcept(%[[V_706]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_706]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_702]] : f32 ! CHECK: } @@ -299,7 +299,7 @@ program p ! CHECK: %[[V_401:[0-9]+]] = fir.load %[[V_400]] : !fir.ref ! CHECK: %[[V_402:[0-9]+]] = fir.convert %[[V_401]] : (i8) -> i32 ! CHECK: %[[V_403:[0-9]+]] = fir.call @_FortranAMapException(%[[V_402]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_404:[0-9]+]] = fir.call @fetestexcept(%[[V_403]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_404:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_403]]) fastmath : (i32) -> i32 ! CHECK: %[[V_405:[0-9]+]] = arith.cmpi ne, %[[V_404]], %c0{{.*}} : i32 ! CHECK: %[[V_406:[0-9]+]] = fir.convert %[[V_405]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_406]] to %[[V_21]] : !fir.ref> @@ -314,9 +314,9 @@ program p ! CHECK: %[[V_452:[0-9]+]] = fir.convert %[[V_451]] : (i8) -> i32 ! CHECK: %[[V_453:[0-9]+]] = fir.call @_FortranAMapException(%[[V_452]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feraiseexcept(%[[V_453]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_453]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feclearexcept(%[[V_453]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_453]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_454:[0-9]+]] = fir.load %[[V_17]] : !fir.ref ! CHECK: %[[V_455:[0-9]+]] = fir.load %[[V_19]] : !fir.ref @@ -342,7 +342,7 @@ program p ! CHECK: %[[V_701:[0-9]+]] = arith.ori %[[V_700]], %[[V_699]] : i1 ! CHECK: fir.if %[[V_701]] { ! CHECK: %[[V_702:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_703:[0-9]+]] = fir.call @feraiseexcept(%[[V_702]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_702]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_698]] : f32 ! CHECK: } @@ -356,7 +356,7 @@ program p ! CHECK: %[[V_460:[0-9]+]] = fir.load %[[V_459]] : !fir.ref ! CHECK: %[[V_461:[0-9]+]] = fir.convert %[[V_460]] : (i8) -> i32 ! CHECK: %[[V_462:[0-9]+]] = fir.call @_FortranAMapException(%[[V_461]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_463:[0-9]+]] = fir.call @fetestexcept(%[[V_462]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_463:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_462]]) fastmath : (i32) -> i32 ! CHECK: %[[V_464:[0-9]+]] = arith.cmpi ne, %[[V_463]], %c0{{.*}} : i32 ! CHECK: %[[V_465:[0-9]+]] = fir.convert %[[V_464]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_465]] to %[[V_21]] : !fir.ref> @@ -371,9 +371,9 @@ program p ! CHECK: %[[V_511:[0-9]+]] = fir.convert %[[V_510]] : (i8) -> i32 ! CHECK: %[[V_512:[0-9]+]] = fir.call @_FortranAMapException(%[[V_511]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feraiseexcept(%[[V_512]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_512]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feclearexcept(%[[V_512]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_512]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_513:[0-9]+]] = fir.load %[[V_17]] : !fir.ref ! CHECK: %[[V_514:[0-9]+]] = fir.load %[[V_19]] : !fir.ref @@ -401,7 +401,7 @@ program p ! CHECK: %[[V_701:[0-9]+]] = arith.ori %[[V_700]], %[[V_699]] : i1 ! CHECK: fir.if %[[V_701]] { ! CHECK: %[[V_702:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_703:[0-9]+]] = fir.call @feraiseexcept(%[[V_702]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_702]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_698]] : f32 ! CHECK: } @@ -415,7 +415,7 @@ program p ! CHECK: %[[V_521:[0-9]+]] = fir.load %[[V_520]] : !fir.ref ! CHECK: %[[V_522:[0-9]+]] = fir.convert %[[V_521]] : (i8) -> i32 ! CHECK: %[[V_523:[0-9]+]] = fir.call @_FortranAMapException(%[[V_522]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_524:[0-9]+]] = fir.call @fetestexcept(%[[V_523]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_524:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_523]]) fastmath : (i32) -> i32 ! CHECK: %[[V_525:[0-9]+]] = arith.cmpi ne, %[[V_524]], %c0{{.*}} : i32 ! CHECK: %[[V_526:[0-9]+]] = fir.convert %[[V_525]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_526]] to %[[V_21]] : !fir.ref> @@ -430,9 +430,9 @@ program p ! CHECK: %[[V_572:[0-9]+]] = fir.convert %[[V_571]] : (i8) -> i32 ! CHECK: %[[V_573:[0-9]+]] = fir.call @_FortranAMapException(%[[V_572]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feraiseexcept(%[[V_573]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_573]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feclearexcept(%[[V_573]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_573]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_574:[0-9]+]] = fir.load %[[V_17]] : !fir.ref ! CHECK: %[[V_575:[0-9]+]] = fir.load %[[V_19]] : !fir.ref @@ -462,7 +462,7 @@ program p ! CHECK: %[[V_705:[0-9]+]] = arith.ori %[[V_704]], %[[V_703]] : i1 ! CHECK: fir.if %[[V_705]] { ! CHECK: %[[V_706:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_707:[0-9]+]] = fir.call @feraiseexcept(%[[V_706]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_706]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_702]] : f32 ! CHECK: } @@ -476,7 +476,7 @@ program p ! CHECK: %[[V_580:[0-9]+]] = fir.load %[[V_579]] : !fir.ref ! CHECK: %[[V_581:[0-9]+]] = fir.convert %[[V_580]] : (i8) -> i32 ! CHECK: %[[V_582:[0-9]+]] = fir.call @_FortranAMapException(%[[V_581]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_583:[0-9]+]] = fir.call @fetestexcept(%[[V_582]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_583:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_582]]) fastmath : (i32) -> i32 ! CHECK: %[[V_584:[0-9]+]] = arith.cmpi ne, %[[V_583]], %c0{{.*}} : i32 ! CHECK: %[[V_585:[0-9]+]] = fir.convert %[[V_584]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_585]] to %[[V_21]] : !fir.ref> @@ -491,9 +491,9 @@ program p ! CHECK: %[[V_631:[0-9]+]] = fir.convert %[[V_630]] : (i8) -> i32 ! CHECK: %[[V_632:[0-9]+]] = fir.call @_FortranAMapException(%[[V_631]]) fastmath : (i32) -> i32 ! CHECK: fir.if %false{{[_0-9]*}} { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feraiseexcept(%[[V_632]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_632]]) fastmath : (i32) ! CHECK: } else { - ! CHECK: %[[V_692:[0-9]+]] = fir.call @feclearexcept(%[[V_632]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feclearexcept(%[[V_632]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_633:[0-9]+]] = fir.load %[[V_17]] : !fir.ref ! CHECK: %[[V_634:[0-9]+]] = fir.load %[[V_19]] : !fir.ref @@ -525,7 +525,7 @@ program p ! CHECK: %[[V_705:[0-9]+]] = arith.ori %[[V_704]], %[[V_703]] : i1 ! CHECK: fir.if %[[V_705]] { ! CHECK: %[[V_706:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_707:[0-9]+]] = fir.call @feraiseexcept(%[[V_706]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_706]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_702]] : f32 ! CHECK: } @@ -539,7 +539,7 @@ program p ! CHECK: %[[V_641:[0-9]+]] = fir.load %[[V_640]] : !fir.ref ! CHECK: %[[V_642:[0-9]+]] = fir.convert %[[V_641]] : (i8) -> i32 ! CHECK: %[[V_643:[0-9]+]] = fir.call @_FortranAMapException(%[[V_642]]) fastmath : (i32) -> i32 - ! CHECK: %[[V_644:[0-9]+]] = fir.call @fetestexcept(%[[V_643]]) fastmath : (i32) -> i32 + ! CHECK: %[[V_644:[0-9]+]] = fir.call {{.*}}fetestexcept(%[[V_643]]) fastmath : (i32) -> i32 ! CHECK: %[[V_645:[0-9]+]] = arith.cmpi ne, %[[V_644]], %c0{{.*}} : i32 ! CHECK: %[[V_646:[0-9]+]] = fir.convert %[[V_645]] : (i1) -> !fir.logical<4> ! CHECK: fir.store %[[V_646]] to %[[V_21]] : !fir.ref> diff --git a/flang/test/Lower/Intrinsics/ieee_next.f90 b/flang/test/Lower/Intrinsics/ieee_next.f90 index aa545967f9bc..585becda9088 100644 --- a/flang/test/Lower/Intrinsics/ieee_next.f90 +++ b/flang/test/Lower/Intrinsics/ieee_next.f90 @@ -53,7 +53,7 @@ end subroutine !CHECK-KIND10: %[[VAL_46:.*]] = arith.select %[[VAL_30]], %[[VAL_43]], %[[VAL_45]] : f16 !CHECK-KIND10: %[[VAL_47:.*]] = arith.constant 48 : i32 !CHECK-KIND10: %[[VAL_48:.*]] = fir.call @_FortranAMapException(%[[VAL_47]]) fastmath : (i32) -> i32 -!CHECK-KIND10: %[[VAL_49:.*]] = fir.call @feraiseexcept(%[[VAL_48]]) fastmath : (i32) -> i32 +!CHECK-KIND10: fir.call {{.*}}feraiseexcept(%[[VAL_48]]) fastmath : (i32) !CHECK-KIND10: fir.result %[[VAL_46]] : f16 !CHECK-KIND10: } else { !CHECK-KIND10: %[[VAL_50:.*]] = arith.bitcast %[[VAL_23]] : f16 to i16 @@ -65,13 +65,13 @@ end subroutine !CHECK-KIND10: fir.if %[[VAL_55]] { !CHECK-KIND10: %[[VAL_56:.*]] = arith.constant 40 : i32 !CHECK-KIND10: %[[VAL_57:.*]] = fir.call @_FortranAMapException(%[[VAL_56]]) fastmath : (i32) -> i32 -!CHECK-KIND10: %[[VAL_58:.*]] = fir.call @feraiseexcept(%[[VAL_57]]) fastmath : (i32) -> i32 +!CHECK-KIND10: fir.call {{.*}}feraiseexcept(%[[VAL_57]]) fastmath : (i32) !CHECK-KIND10: } !CHECK-KIND10: %[[VAL_59:.*]] = "llvm.intr.is.fpclass"(%[[VAL_54]]) <{bit = 144 : i32}> : (f16) -> i1 !CHECK-KIND10: fir.if %[[VAL_59]] { !CHECK-KIND10: %[[VAL_60:.*]] = arith.constant 48 : i32 !CHECK-KIND10: %[[VAL_61:.*]] = fir.call @_FortranAMapException(%[[VAL_60]]) fastmath : (i32) -> i32 -!CHECK-KIND10: %[[VAL_62:.*]] = fir.call @feraiseexcept(%[[VAL_61]]) fastmath : (i32) -> i32 +!CHECK-KIND10: fir.call {{.*}}feraiseexcept(%[[VAL_61]]) fastmath : (i32) !CHECK-KIND10: } !CHECK-KIND10: fir.result %[[VAL_54]] : f16 !CHECK-KIND10: } @@ -106,7 +106,7 @@ end subroutine !CHECK: fir.if %[[VAL_27]] { !CHECK: %[[VAL_28:.*]] = arith.constant 1 : i32 !CHECK: %[[VAL_29:.*]] = fir.call @_FortranAMapException(%[[VAL_28]]) fastmath : (i32) -> i32 -!CHECK: %[[VAL_30:.*]] = fir.call @feraiseexcept(%[[VAL_29]]) fastmath : (i32) -> i32 +!CHECK: fir.call {{.*}}feraiseexcept(%[[VAL_29]]) fastmath : (i32) !CHECK: } !CHECK: fir.result %[[VAL_13]] : bf16 !CHECK: } else { @@ -156,7 +156,7 @@ end subroutine !CHECK: fir.if %[[VAL_26]] { !CHECK: %[[VAL_27:.*]] = arith.constant 1 : i32 !CHECK: %[[VAL_28:.*]] = fir.call @_FortranAMapException(%[[VAL_27]]) fastmath : (i32) -> i32 -!CHECK: %[[VAL_29:.*]] = fir.call @feraiseexcept(%[[VAL_28]]) fastmath : (i32) -> i32 +!CHECK: fir.call {{.*}}feraiseexcept(%[[VAL_28]]) fastmath : (i32) !CHECK: } !CHECK: fir.result %[[VAL_13]] : f32 !CHECK: } else { @@ -227,7 +227,7 @@ end subroutine !CHECK: %[[VAL_46:.*]] = arith.select %[[VAL_30]], %[[VAL_43]], %[[VAL_45]] : f64 !CHECK: %[[VAL_47:.*]] = arith.constant 48 : i32 !CHECK: %[[VAL_48:.*]] = fir.call @_FortranAMapException(%[[VAL_47]]) fastmath : (i32) -> i32 -!CHECK: %[[VAL_49:.*]] = fir.call @feraiseexcept(%[[VAL_48]]) fastmath : (i32) -> i32 +!CHECK: fir.call {{.*}}feraiseexcept(%[[VAL_48]]) fastmath : (i32) !CHECK: fir.result %[[VAL_46]] : f64 !CHECK: } else { !CHECK: %[[VAL_50:.*]] = arith.bitcast %[[VAL_23]] : f64 to i64 @@ -239,13 +239,13 @@ end subroutine !CHECK: fir.if %[[VAL_55]] { !CHECK: %[[VAL_56:.*]] = arith.constant 40 : i32 !CHECK: %[[VAL_57:.*]] = fir.call @_FortranAMapException(%[[VAL_56]]) fastmath : (i32) -> i32 -!CHECK: %[[VAL_58:.*]] = fir.call @feraiseexcept(%[[VAL_57]]) fastmath : (i32) -> i32 +!CHECK: fir.call {{.*}}feraiseexcept(%[[VAL_57]]) fastmath : (i32) !CHECK: } !CHECK: %[[VAL_59:.*]] = "llvm.intr.is.fpclass"(%[[VAL_54]]) <{bit = 144 : i32}> : (f64) -> i1 !CHECK: fir.if %[[VAL_59]] { !CHECK: %[[VAL_60:.*]] = arith.constant 48 : i32 !CHECK: %[[VAL_61:.*]] = fir.call @_FortranAMapException(%[[VAL_60]]) fastmath : (i32) -> i32 -!CHECK: %[[VAL_62:.*]] = fir.call @feraiseexcept(%[[VAL_61]]) fastmath : (i32) -> i32 +!CHECK: fir.call {{.*}}feraiseexcept(%[[VAL_61]]) fastmath : (i32) !CHECK: } !CHECK: fir.result %[[VAL_54]] : f64 !CHECK: } @@ -279,7 +279,7 @@ end subroutine !CHECK-KIND10: fir.if %[[VAL_26]] { !CHECK-KIND10: %[[VAL_27:.*]] = arith.constant 1 : i32 !CHECK-KIND10: %[[VAL_28:.*]] = fir.call @_FortranAMapException(%[[VAL_27]]) fastmath : (i32) -> i32 -!CHECK-KIND10: %[[VAL_29:.*]] = fir.call @feraiseexcept(%[[VAL_28]]) fastmath : (i32) -> i32 +!CHECK-KIND10: fir.call {{.*}}feraiseexcept(%[[VAL_28]]) fastmath : (i32) !CHECK-KIND10: } !CHECK-KIND10: fir.result %[[VAL_13]] : f80 !CHECK-KIND10: } else { @@ -294,12 +294,12 @@ end subroutine !CHECK-KIND10: } else { !CHECK-KIND10: %[[VAL_37:.*]] = arith.constant 63 : i32 !CHECK-KIND10: %[[VAL_38:.*]] = fir.call @_FortranAMapException(%[[VAL_37]]) fastmath : (i32) -> i32 -!CHECK-KIND10: %[[VAL_39:.*]] = fir.call @fetestexcept(%[[VAL_38]]) fastmath : (i32) -> i32 -!CHECK-KIND10: %[[VAL_40:.*]] = fir.call @fedisableexcept(%[[VAL_38]]) fastmath : (i32) -> i32 +!CHECK-KIND10: %[[VAL_39:.*]] = fir.call {{.*}}fetestexcept(%[[VAL_38]]) fastmath : (i32) -> i32 +!CHECK-KIND10: %[[VAL_40:.*]] = fir.call {{.*}}fedisableexcept(%[[VAL_38]]) fastmath : (i32) -> i32 !CHECK-KIND10: %[[VAL_41:.*]] = fir.call @_FortranANearest10(%[[VAL_13]], %[[VAL_16]]) fastmath : (f80, i1) -> f80 -!CHECK-KIND10: %[[VAL_42:.*]] = fir.call @feclearexcept(%[[VAL_38]]) fastmath : (i32) -> i32 -!CHECK-KIND10: %[[VAL_43:.*]] = fir.call @feraiseexcept(%[[VAL_39]]) fastmath : (i32) -> i32 -!CHECK-KIND10: %[[VAL_44:.*]] = fir.call @feenableexcept(%[[VAL_40]]) fastmath : (i32) -> i32 +!CHECK-KIND10: %[[VAL_42:.*]] = fir.call {{.*}}feclearexcept(%[[VAL_38]]) fastmath : (i32) -> i32 +!CHECK-KIND10: fir.call {{.*}}feraiseexcept(%[[VAL_39]]) fastmath : (i32) +!CHECK-KIND10: %[[VAL_44:.*]] = fir.call {{.*}}feenableexcept(%[[VAL_40]]) fastmath : (i32) -> i32 !CHECK-KIND10: fir.result %[[VAL_41]] : f80 !CHECK-KIND10: } !CHECK-KIND10: fir.result %[[VAL_32]] : f80 @@ -332,7 +332,7 @@ end subroutine !CHECK-KIND16: fir.if %[[VAL_26]] { !CHECK-KIND16: %[[VAL_27:.*]] = arith.constant 1 : i32 !CHECK-KIND16: %[[VAL_28:.*]] = fir.call @_FortranAMapException(%[[VAL_27]]) fastmath : (i32) -> i32 -!CHECK-KIND16: %[[VAL_29:.*]] = fir.call @feraiseexcept(%[[VAL_28]]) fastmath : (i32) -> i32 +!CHECK-KIND16: fir.call {{.*}}feraiseexcept(%[[VAL_28]]) fastmath : (i32) !CHECK-KIND16: } !CHECK-KIND16: fir.result %[[VAL_13]] : f128 !CHECK-KIND16: } else { diff --git a/flang/test/Lower/Intrinsics/ieee_real.f90 b/flang/test/Lower/Intrinsics/ieee_real.f90 index 20b7441e6e3a..194824bfa6b3 100644 --- a/flang/test/Lower/Intrinsics/ieee_real.f90 +++ b/flang/test/Lower/Intrinsics/ieee_real.f90 @@ -88,15 +88,15 @@ program p ! CHECK: %[[V_43:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_42]]) <{bit = 516 : i32}> : (f32) -> i1 ! CHECK: fir.if %[[V_43]] { ! CHECK: %[[V_44:[0-9]+]] = fir.call @_FortranAMapException(%c40{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_45:[0-9]+]] = fir.call @feraiseexcept(%[[V_44]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_44]]) fastmath : (i32) ! CHECK: } else { ! CHECK: %[[V_44:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_42]]) <{bit = 240 : i32}> : (f32) -> i1 ! CHECK: fir.if %[[V_44]] { ! CHECK: %[[V_45:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_46:[0-9]+]] = fir.call @feraiseexcept(%[[V_45]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_45]]) fastmath : (i32) ! CHECK: } else { ! CHECK: %[[V_45:[0-9]+]] = fir.call @_FortranAMapException(%c32{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_46:[0-9]+]] = fir.call @feraiseexcept(%[[V_45]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_45]]) fastmath : (i32) ! CHECK: } ! CHECK: } ! CHECK: fir.result %[[V_42]] : f32 @@ -113,7 +113,7 @@ program p ! CHECK: %[[V_19:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_18]]) <{bit = 1 : i32}> : (f32) -> i1 ! CHECK: %[[V_20:[0-9]+]] = fir.if %[[V_19]] -> (f32) { ! CHECK: %[[V_27:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_28:[0-9]+]] = fir.call @feraiseexcept(%[[V_27]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_27]]) fastmath : (i32) ! CHECK: %[[V_29:[0-9]+]] = fir.address_of(@_FortranAIeeeValueTable_4) : !fir.ref> ! CHECK: %[[V_30:[0-9]+]] = fir.coordinate_of %[[V_29]], %c2{{.*}} : (!fir.ref>, i8) -> !fir.ref ! CHECK: %[[V_31:[0-9]+]] = fir.load %[[V_30]] : !fir.ref @@ -138,7 +138,7 @@ program p ! CHECK: %[[V_27:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_23]]) <{bit = 1 : i32}> : (f32) -> i1 ! CHECK: %[[V_28:[0-9]+]] = fir.if %[[V_27]] -> (f32) { ! CHECK: %[[V_29:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_30:[0-9]+]] = fir.call @feraiseexcept(%[[V_29]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_29]]) fastmath : (i32) ! CHECK: %[[V_31:[0-9]+]] = fir.address_of(@_FortranAIeeeValueTable_4) : !fir.ref> ! CHECK: %[[V_32:[0-9]+]] = fir.coordinate_of %[[V_31]], %c2{{.*}} : (!fir.ref>, i8) -> !fir.ref ! CHECK: %[[V_33:[0-9]+]] = fir.load %[[V_32]] : !fir.ref @@ -198,15 +198,15 @@ program p ! CHECK: %[[V_43:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_42]]) <{bit = 516 : i32}> : (f32) -> i1 ! CHECK: fir.if %[[V_43]] { ! CHECK: %[[V_44:[0-9]+]] = fir.call @_FortranAMapException(%c40{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_45:[0-9]+]] = fir.call @feraiseexcept(%[[V_44]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_44]]) fastmath : (i32) ! CHECK: } else { ! CHECK: %[[V_44:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_42]]) <{bit = 240 : i32}> : (f32) -> i1 ! CHECK: fir.if %[[V_44]] { ! CHECK: %[[V_45:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_46:[0-9]+]] = fir.call @feraiseexcept(%[[V_45]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_45]]) fastmath : (i32) ! CHECK: } else { ! CHECK: %[[V_45:[0-9]+]] = fir.call @_FortranAMapException(%c32{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_46:[0-9]+]] = fir.call @feraiseexcept(%[[V_45]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_45]]) fastmath : (i32) ! CHECK: } ! CHECK: } ! CHECK: fir.result %[[V_42]] : f32 diff --git a/flang/test/Lower/Intrinsics/ieee_rem.f90 b/flang/test/Lower/Intrinsics/ieee_rem.f90 index f6333d5b89df..1c47baf02965 100644 --- a/flang/test/Lower/Intrinsics/ieee_rem.f90 +++ b/flang/test/Lower/Intrinsics/ieee_rem.f90 @@ -33,7 +33,7 @@ ! CHECK-DAG: %[[V_19:[0-9]+]] = fir.call @remainderf(%[[V_14]], %[[V_15]]) fastmath : (f32, f32) -> f32 ! CHECK: fir.if %[[V_18]] { ! CHECK: %[[V_40:[0-9]+]] = fir.call @_FortranAMapException(%c16{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_41:[0-9]+]] = fir.call @feraiseexcept(%[[V_40]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_40]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_20:[0-9]+]] = fir.convert %[[V_19]] : (f32) -> f32 ! CHECK: hlfir.assign %[[V_20]] to %[[V_3]]#0 : f32, !fir.ref @@ -54,7 +54,7 @@ ! CHECK-DAG: %[[V_28:[0-9]+]] = fir.call @remainder(%[[V_23]], %[[V_24]]) fastmath : (f64, f64) -> f64 ! CHECK: fir.if %[[V_27]] { ! CHECK: %[[V_40:[0-9]+]] = fir.call @_FortranAMapException(%c16{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_41:[0-9]+]] = fir.call @feraiseexcept(%[[V_40]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_40]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_29:[0-9]+]] = fir.convert %[[V_28]] : (f64) -> f64 ! CHECK: %[[V_30:[0-9]+]] = fir.convert %[[V_29]] : (f64) -> f16 @@ -76,7 +76,7 @@ ! CHECK-DAG: %[[V_38:[0-9]+]] = fir.call @remainder(%[[V_33]], %[[V_34]]) fastmath : (f64, f64) -> f64 ! CHECK: fir.if %[[V_37]] { ! CHECK: %[[V_40:[0-9]+]] = fir.call @_FortranAMapException(%c16{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_41:[0-9]+]] = fir.call @feraiseexcept(%[[V_40]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_40]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_39:[0-9]+]] = fir.convert %[[V_38]] : (f64) -> f64 ! CHECK: hlfir.assign %[[V_39]] to %[[V_5]]#0 : f64, !fir.ref diff --git a/flang/test/Lower/Intrinsics/ieee_rint_int.f90 b/flang/test/Lower/Intrinsics/ieee_rint_int.f90 index 4118e2f68158..21940447e599 100644 --- a/flang/test/Lower/Intrinsics/ieee_rint_int.f90 +++ b/flang/test/Lower/Intrinsics/ieee_rint_int.f90 @@ -81,13 +81,13 @@ program p ! CHECK: %[[V_163:[0-9]+]] = arith.cmpf one, %[[V_50]], %[[V_61]] fastmath : f32 ! CHECK: fir.if %[[V_163]] { ! CHECK: %[[V_165:[0-9]+]] = fir.call @_FortranAMapException(%c32{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_166:[0-9]+]] = fir.call @feraiseexcept(%[[V_165]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_165]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_164:[0-9]+]] = fir.convert %[[V_61]] : (f32) -> i32 ! CHECK: fir.result %[[V_164]] : i32 ! CHECK: } else { ! CHECK: %[[V_163:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_164:[0-9]+]] = fir.call @feraiseexcept(%[[V_163]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_163]]) fastmath : (i32) ! CHECK: %[[V_165:[0-9]+]] = arith.select %[[V_64]], %c2147483647{{.*}}, %c-2147483648{{.*}} : i32 ! CHECK: fir.result %[[V_165]] : i32 ! CHECK: } @@ -142,13 +142,13 @@ program p ! CHECK: %[[V_163:[0-9]+]] = arith.cmpf one, %[[V_85]], %[[V_97]] fastmath : f16 ! CHECK: fir.if %[[V_163]] { ! CHECK: %[[V_165:[0-9]+]] = fir.call @_FortranAMapException(%c32{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_166:[0-9]+]] = fir.call @feraiseexcept(%[[V_165]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_165]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_164:[0-9]+]] = fir.convert %[[V_97]] : (f16) -> i64 ! CHECK: fir.result %[[V_164]] : i64 ! CHECK: } else { ! CHECK: %[[V_163:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_164:[0-9]+]] = fir.call @feraiseexcept(%[[V_163]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_163]]) fastmath : (i32) ! CHECK: %[[V_165:[0-9]+]] = arith.select %[[V_100]], %c9223372036854775807{{.*}}, %c-9223372036854775808{{.*}} : i64 ! CHECK: fir.result %[[V_165]] : i64 ! CHECK: } @@ -167,7 +167,7 @@ program p ! CHECK: %[[V_108:[0-9]+]] = arith.cmpf one, %[[V_104]], %[[V_107]] fastmath : bf16 ! CHECK: fir.if %[[V_108]] { ! CHECK: %[[V_163:[0-9]+]] = fir.call @_FortranAMapException(%c32{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_164:[0-9]+]] = fir.call @feraiseexcept(%[[V_163]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_163]]) fastmath : (i32) ! CHECK: } ! CHECK: hlfir.assign %[[V_107]] to %[[V_31]]#0 : bf16, !fir.ref y3 = ieee_rint(x3) @@ -197,13 +197,13 @@ program p ! CHECK: %[[V_163:[0-9]+]] = arith.cmpf one, %[[V_111]], %[[V_123]] fastmath : bf16 ! CHECK: fir.if %[[V_163]] { ! CHECK: %[[V_165:[0-9]+]] = fir.call @_FortranAMapException(%c32{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_166:[0-9]+]] = fir.call @feraiseexcept(%[[V_165]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_165]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_164:[0-9]+]] = fir.convert %[[V_123]] : (bf16) -> i128 ! CHECK: fir.result %[[V_164]] : i128 ! CHECK: } else { ! CHECK: %[[V_163:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_164:[0-9]+]] = fir.call @feraiseexcept(%[[V_163]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_163]]) fastmath : (i32) ! CHECK: %[[V_165:[0-9]+]] = arith.select %[[V_126]], %c170141183460469231731687303715884105727{{.*}}, %c-170141183460469231731687303715884105728{{.*}} : i128 ! CHECK: fir.result %[[V_165]] : i128 ! CHECK: } @@ -229,7 +229,7 @@ program p ! CHECK: %[[V_142:[0-9]+]] = arith.cmpf one, %[[V_139]], %[[V_141]] fastmath : f32 ! CHECK: fir.if %[[V_142]] { ! CHECK: %[[V_163:[0-9]+]] = fir.call @_FortranAMapException(%c32{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_164:[0-9]+]] = fir.call @feraiseexcept(%[[V_163]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_163]]) fastmath : (i32) ! CHECK: } ! CHECK: hlfir.assign %[[V_141]] to %[[V_33]]#0 : f32, !fir.ref y8 = ieee_rint(x8) @@ -258,13 +258,13 @@ program p ! CHECK: %[[V_163:[0-9]+]] = arith.cmpf one, %[[V_145]], %[[V_156]] fastmath : f32 ! CHECK: fir.if %[[V_163]] { ! CHECK: %[[V_165:[0-9]+]] = fir.call @_FortranAMapException(%c32{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_166:[0-9]+]] = fir.call @feraiseexcept(%[[V_165]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_165]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_164:[0-9]+]] = fir.convert %[[V_156]] : (f32) -> i16 ! CHECK: fir.result %[[V_164]] : i16 ! CHECK: } else { ! CHECK: %[[V_163:[0-9]+]] = fir.call @_FortranAMapException(%c1{{.*}}) fastmath : (i32) -> i32 - ! CHECK: %[[V_164:[0-9]+]] = fir.call @feraiseexcept(%[[V_163]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_163]]) fastmath : (i32) ! CHECK: %[[V_165:[0-9]+]] = arith.select %[[V_159]], %c32767{{.*}}, %c-32768{{.*}} : i16 ! CHECK: fir.result %[[V_165]] : i16 ! CHECK: } diff --git a/flang/test/Lower/Intrinsics/nearest.f90 b/flang/test/Lower/Intrinsics/nearest.f90 index d4859cfe90e5..6dbdc8b89070 100644 --- a/flang/test/Lower/Intrinsics/nearest.f90 +++ b/flang/test/Lower/Intrinsics/nearest.f90 @@ -30,7 +30,7 @@ ! CHECK: %[[V_21:[0-9]+]] = fir.if %[[V_20]] -> (f16) { ! CHECK: %[[V_22:[0-9]+]] = arith.select %[[V_11]], %cst{{[_0-9]*}}, %cst{{[_0-9]*}} : f16 ! CHECK: %[[V_23:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_23]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_23]]) fastmath : (i32) ! CHECK: fir.result %[[V_22]] : f16 ! CHECK: } else { ! CHECK-DAG: %[[V_22:[0-9]+]] = arith.subi %[[V_12]], %c1{{.*}} : i16 @@ -40,12 +40,12 @@ ! CHECK: %[[V_26:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_25]]) <{bit = 516 : i32}> : (f16) -> i1 ! CHECK: fir.if %[[V_26]] { ! CHECK: %[[V_28:[0-9]+]] = fir.call @_FortranAMapException(%c40{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_28]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_28]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_27:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_25]]) <{bit = 144 : i32}> : (f16) -> i1 ! CHECK: fir.if %[[V_27]] { ! CHECK: %[[V_28:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_28]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_28]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_25]] : f16 ! CHECK: } @@ -92,7 +92,7 @@ end ! CHECK: %[[V_24:[0-9]+]] = fir.if %[[V_23]] -> (bf16) { ! CHECK: %[[V_25:[0-9]+]] = arith.select %[[V_13]], %cst{{[_0-9]*}}, %cst{{[_0-9]*}} : bf16 ! CHECK: %[[V_26:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_26]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_26]]) fastmath : (i32) ! CHECK: fir.result %[[V_25]] : bf16 ! CHECK: } else { ! CHECK: %[[V_25:[0-9]+]] = arith.bitcast %[[V_5]] : bf16 to i16 @@ -103,12 +103,12 @@ end ! CHECK: %[[V_30:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_29]]) <{bit = 516 : i32}> : (bf16) -> i1 ! CHECK: fir.if %[[V_30]] { ! CHECK: %[[V_32:[0-9]+]] = fir.call @_FortranAMapException(%c40{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_32]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_32]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_31:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_29]]) <{bit = 144 : i32}> : (bf16) -> i1 ! CHECK: fir.if %[[V_31]] { ! CHECK: %[[V_32:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_32]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_32]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_29]] : bf16 ! CHECK: } @@ -152,7 +152,7 @@ end ! CHECK: %[[V_21:[0-9]+]] = fir.if %[[V_20]] -> (f32) { ! CHECK: %[[V_22:[0-9]+]] = arith.select %[[V_11]], %cst{{[_0-9]*}}, %cst{{[_0-9]*}} : f32 ! CHECK: %[[V_23:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_23]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_23]]) fastmath : (i32) ! CHECK: fir.result %[[V_22]] : f32 ! CHECK: } else { ! CHECK-DAG: %[[V_22:[0-9]+]] = arith.subi %[[V_12]], %c1{{.*}} : i32 @@ -162,12 +162,12 @@ end ! CHECK: %[[V_26:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_25]]) <{bit = 516 : i32}> : (f32) -> i1 ! CHECK: fir.if %[[V_26]] { ! CHECK: %[[V_28:[0-9]+]] = fir.call @_FortranAMapException(%c40{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_28]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_28]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_27:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_25]]) <{bit = 144 : i32}> : (f32) -> i1 ! CHECK: fir.if %[[V_27]] { ! CHECK: %[[V_28:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_28]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_28]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_25]] : f32 ! CHECK: } @@ -211,7 +211,7 @@ end ! CHECK: %[[V_21:[0-9]+]] = fir.if %[[V_20]] -> (f64) { ! CHECK: %[[V_22:[0-9]+]] = arith.select %[[V_11]], %cst{{[_0-9]*}}, %cst{{[_0-9]*}} : f64 ! CHECK: %[[V_23:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_23]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_23]]) fastmath : (i32) ! CHECK: fir.result %[[V_22]] : f64 ! CHECK: } else { ! CHECK-DAG: %[[V_22:[0-9]+]] = arith.subi %[[V_12]], %c1{{.*}} : i64 @@ -221,12 +221,12 @@ end ! CHECK: %[[V_26:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_25]]) <{bit = 516 : i32}> : (f64) -> i1 ! CHECK: fir.if %[[V_26]] { ! CHECK: %[[V_28:[0-9]+]] = fir.call @_FortranAMapException(%c40{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_28]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_28]]) fastmath : (i32) ! CHECK: } ! CHECK: %[[V_27:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_25]]) <{bit = 144 : i32}> : (f64) -> i1 ! CHECK: fir.if %[[V_27]] { ! CHECK: %[[V_28:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK: fir.call @feraiseexcept(%[[V_28]]) fastmath : (i32) -> i32 + ! CHECK: fir.call {{.*}}feraiseexcept(%[[V_28]]) fastmath : (i32) ! CHECK: } ! CHECK: fir.result %[[V_25]] : f64 ! CHECK: } @@ -270,7 +270,7 @@ end ! CHECK-KIND10: %[[V_21:[0-9]+]] = fir.if %[[V_20]] -> (f80) { ! CHECK-KIND10: %[[V_22:[0-9]+]] = arith.select %[[V_11]], %cst{{[_0-9]*}}, %cst{{[_0-9]*}} : f80 ! CHECK-KIND10: %[[V_23:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK-KIND10: fir.call @feraiseexcept(%[[V_23]]) fastmath : (i32) -> i32 + ! CHECK-KIND10: fir.call {{.*}}feraiseexcept(%[[V_23]]) fastmath : (i32) ! CHECK-KIND10: fir.result %[[V_22]] : f80 ! CHECK-KIND10: } else { ! CHECK-KIND10: %[[V_22:[0-9]+]] = fir.call @_FortranANearest10(%[[V_5]], %[[V_11]]) fastmath : (f80, i1) -> f80 @@ -317,7 +317,7 @@ end ! CHECK-KIND16: %[[V_21:[0-9]+]] = fir.if %[[V_20]] -> (f128) { ! CHECK-KIND16: %[[V_22:[0-9]+]] = arith.select %[[V_11]], %cst{{[_0-9]*}}, %cst{{[_0-9]*}} : f128 ! CHECK-KIND16: %[[V_23:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK-KIND16: fir.call @feraiseexcept(%[[V_23]]) fastmath : (i32) -> i32 + ! CHECK-KIND16: fir.call {{.*}}feraiseexcept(%[[V_23]]) fastmath : (i32) ! CHECK-KIND16: fir.result %[[V_22]] : f128 ! CHECK-KIND16: } else { ! CHECK-KIND16-DAG: %[[V_22:[0-9]+]] = arith.subi %[[V_12]], %c1{{.*}} : i128 @@ -327,12 +327,12 @@ end ! CHECK-KIND16: %[[V_26:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_25]]) <{bit = 516 : i32}> : (f128) -> i1 ! CHECK-KIND16: fir.if %[[V_26]] { ! CHECK-KIND16: %[[V_28:[0-9]+]] = fir.call @_FortranAMapException(%c40{{.*}}) fastmath : (i32) -> i32 - ! CHECK-KIND16: fir.call @feraiseexcept(%[[V_28]]) fastmath : (i32) -> i32 + ! CHECK-KIND16: fir.call {{.*}}feraiseexcept(%[[V_28]]) fastmath : (i32) ! CHECK-KIND16: } ! CHECK-KIND16: %[[V_27:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_25]]) <{bit = 144 : i32}> : (f128) -> i1 ! CHECK-KIND16: fir.if %[[V_27]] { ! CHECK-KIND16: %[[V_28:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK-KIND16: fir.call @feraiseexcept(%[[V_28]]) fastmath : (i32) -> i32 + ! CHECK-KIND16: fir.call {{.*}}feraiseexcept(%[[V_28]]) fastmath : (i32) ! CHECK-KIND16: } ! CHECK-KIND16: fir.result %[[V_25]] : f128 ! CHECK-KIND16: } @@ -378,7 +378,7 @@ end ! CHECK-KIND16: %[[V_22:[0-9]+]] = fir.if %[[V_21]] -> (f128) { ! CHECK-KIND16: %[[V_23:[0-9]+]] = arith.select %[[V_12]], %cst{{[_0-9]*}}, %cst{{[_0-9]*}} : f128 ! CHECK-KIND16: %[[V_24:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK-KIND16: fir.call @feraiseexcept(%[[V_24]]) fastmath : (i32) -> i32 + ! CHECK-KIND16: fir.call {{.*}}feraiseexcept(%[[V_24]]) fastmath : (i32) ! CHECK-KIND16: fir.result %[[V_23]] : f128 ! CHECK-KIND16: } else { ! CHECK-KIND16-DAG: %[[V_23:[0-9]+]] = arith.subi %[[V_13]], %c1{{.*}} : i128 @@ -388,12 +388,12 @@ end ! CHECK-KIND16: %[[V_27:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_26]]) <{bit = 516 : i32}> : (f128) -> i1 ! CHECK-KIND16: fir.if %[[V_27]] { ! CHECK-KIND16: %[[V_29:[0-9]+]] = fir.call @_FortranAMapException(%c40{{.*}}) fastmath : (i32) -> i32 - ! CHECK-KIND16: fir.call @feraiseexcept(%[[V_29]]) fastmath : (i32) -> i32 + ! CHECK-KIND16: fir.call {{.*}}feraiseexcept(%[[V_29]]) fastmath : (i32) ! CHECK-KIND16: } ! CHECK-KIND16: %[[V_28:[0-9]+]] = "llvm.intr.is.fpclass"(%[[V_26]]) <{bit = 144 : i32}> : (f128) -> i1 ! CHECK-KIND16: fir.if %[[V_28]] { ! CHECK-KIND16: %[[V_29:[0-9]+]] = fir.call @_FortranAMapException(%c48{{.*}}) fastmath : (i32) -> i32 - ! CHECK-KIND16: fir.call @feraiseexcept(%[[V_29]]) fastmath : (i32) -> i32 + ! CHECK-KIND16: fir.call {{.*}}feraiseexcept(%[[V_29]]) fastmath : (i32) ! CHECK-KIND16: } ! CHECK-KIND16: fir.result %[[V_26]] : f128 ! CHECK-KIND16: }