Changeset View
Changeset View
Standalone View
Standalone View
lib/Target/ARM/ARMTargetTransformInfo.h
Show First 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | public: | ||||
ARMTTIImpl(const ARMTTIImpl &Arg) | ARMTTIImpl(const ARMTTIImpl &Arg) | ||||
: BaseT(static_cast<const BaseT &>(Arg)), ST(Arg.ST), TLI(Arg.TLI) {} | : BaseT(static_cast<const BaseT &>(Arg)), ST(Arg.ST), TLI(Arg.TLI) {} | ||||
ARMTTIImpl(ARMTTIImpl &&Arg) | ARMTTIImpl(ARMTTIImpl &&Arg) | ||||
: BaseT(std::move(static_cast<BaseT &>(Arg))), ST(std::move(Arg.ST)), | : BaseT(std::move(static_cast<BaseT &>(Arg))), ST(std::move(Arg.ST)), | ||||
TLI(std::move(Arg.TLI)) {} | TLI(std::move(Arg.TLI)) {} | ||||
bool enableInterleavedAccessVectorization() { return true; } | bool enableInterleavedAccessVectorization() { return true; } | ||||
bool enablePotentiallyUnsafeFPVectorization() { | |||||
return ST->hasFPARMv8() || ST->isTargetDarwin(); | |||||
jgreenhalgh: What's the idea here? The FTZ behaviour doesn't change in AArch32 execution state on ARMv8-A… | |||||
rengolinAuthorUnsubmitted Not Done ReplyInline ActionsHum. I've been wrongly advised on this one... Now reading the ARM ARM, I can see that this is the case. I'll change it to match AArch64 only. Thanks! rengolin: Hum. I've been wrongly advised on this one... Now reading the ARM ARM, I can see that this is… | |||||
} | |||||
/// \name Scalar TTI Implementations | /// \name Scalar TTI Implementations | ||||
/// @{ | /// @{ | ||||
using BaseT::getIntImmCost; | using BaseT::getIntImmCost; | ||||
int getIntImmCost(const APInt &Imm, Type *Ty); | int getIntImmCost(const APInt &Imm, Type *Ty); | ||||
/// @} | /// @} | ||||
▲ Show 20 Lines • Show All 63 Lines • Show Last 20 Lines |
What's the idea here? The FTZ behaviour doesn't change in AArch32 execution state on ARMv8-A, you're still unsafe. The full IEEE-compliant Advanced SIMD is in AArch64 execution state.