================ @@ -820,16 +820,23 @@ AArch64TargetInfo::getTargetBuiltins() const { std::optional<std::pair<unsigned, unsigned>> AArch64TargetInfo::getVScaleRange(const LangOptions &LangOpts, - bool IsArmStreamingFunction, + ArmStreamingKind IsArmStreamingFunction, llvm::StringMap<bool> *FeatureMap) const { - if (LangOpts.VScaleMin || LangOpts.VScaleMax) + if (IsArmStreamingFunction == ArmStreamingKind::NotStreaming && + (LangOpts.VScaleMin || LangOpts.VScaleMax)) return std::pair<unsigned, unsigned>( LangOpts.VScaleMin ? LangOpts.VScaleMin : 1, LangOpts.VScaleMax); + if (IsArmStreamingFunction == ArmStreamingKind::Streaming && + (LangOpts.VScaleStreamingMin || LangOpts.VScaleStreamingMax)) + return std::pair<unsigned, unsigned>( + LangOpts.VScaleStreamingMin ? LangOpts.VScaleStreamingMin : 1, + LangOpts.VScaleStreamingMax); + ---------------- sdesmalen-arm wrote:
When compiling a `__arm_streaming_compatible` function with `-march=armv9-a+sme -Xclang -mvscale-min=2 -Xclang -mvscale-streaming-min=2 -Xclang -mvscale-max=4 -Xclang -mvscale-streaming-max=4`, it sets the vscale_range to `vscale_range(1, 16)`. I think it should set this to `vscale_range(2, 4)` instead. https://github.com/llvm/llvm-project/pull/144611 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits