[Flang][RISCV] Set vscale_range based off zvl*b (#77277)
commitc4b591a10f2f604291da14aea7983a5fa7837ce8
authorLuke Lau <luke@igalia.com>
Mon, 15 Jan 2024 08:52:20 +0000 (15 15:52 +0700)
committerGitHub <noreply@github.com>
Mon, 15 Jan 2024 08:52:20 +0000 (15 15:52 +0700)
tree0b1ef4e332db0fb29aca3fd0fc143a403a71019f
parent8cac995eadebbf23b10f8cebc9a42adcf91cc26b
[Flang][RISCV] Set vscale_range based off zvl*b (#77277)

This patch implements the logic (for now, copied from
RISCVTargetInfo::getVScaleRange) so that we can compute the vscale_range
based off of the zvl*b extension, e.g. using an arch with zvl256b now
implies vscale_range(2,1024).

It's worth noting that we don't have to exactly copy the behaviour of
clang with regards to how it interacts with the
-mvscale-min/-mvscale-max flags, but changing it can be left to a future
patch.

This also adds a guard for +sve so that we only check for it on aarch64,
which was the behaviour prior to 898db1136e679
flang/lib/Frontend/FrontendActions.cpp
flang/test/Lower/RISCV/riscv-vector-bits-vscale-range.f90