<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/76703>76703</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[RISCV] Fatal error when increasing minimum VLEN via target attribute
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:RISC-V
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
lukel97
</td>
</tr>
</table>
<pre>
Trying to use a target attribute to increase the minimum VLEN results in a fatal error, e.g. the below with `clang -march=rv64gv`:
```c
__attribute__((target("arch=+zvl256b")))
int f() { return 42; }
```
results in:
```
fatal error: error in backend: riscv-v-vector-bits-min specified is lower than the Zvl*b limitation
```
riscv-v-vector-bits-min is computed from vscale_range:
```
; Function Attrs: noinline nounwind optnone vscale_range(2,1024)
define dso_local signext i32 @f() #0 {
entry:
ret i32 42
}
attributes #0 = { noinline nounwind optnone vscale_range(2,1024) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv64" "target-features"="+64bit,+a,+d,+f,+m,+relax,+v,+zicsr,+zifencei,+zve32f,+zve32x,+zve64d,+zve64f,+zve64x,+zvl128b,+zvl256b,+zvl32b,+zvl64b,-c,-e,-experimental-zacas,-experimental-zcmop,-experimental-zfbfmin,-experimental-zicfilp,-experimental-zicfiss,-experimental-zicond,-experimental-zimop,-experimental-ztso,-experimental-zvfbfmin,-experimental-zvfbfwma,-h,-smaia,-ssaia,-svinval,-svnapot,-svpbmt,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmp,-zcmt,-zdinx,-zfa,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zicbom,-zicbop,-zicboz,-zicntr,-zihintntl,-zihintpause,-zihpm,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-zmmul,-zvbb,-zvbc,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl16384b,-zvl2048b,-zvl32768b,-zvl4096b,-zvl512b,-zvl65536b,-zvl8192b" }
```
I think it should have been initialized to vscale_range(4, 1024) here based off of the target attribute.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVsuO87oNfhplI3jgyI6TLLKYSwc4QNFFW_yLbgayRMdqdPFIspLJ0xeyZCdzOX-BAwT-PlIkRYpyTOqcOGqAA9o8oc3Lio6-N_YgxxPI_XbVGv5x-Lf9EPqIvcGjA0yxp_YIHlPvrWhHD3FFaGaBOsC-B6yEFmpU-Nff__YPbMGN0jssNKa4o55KDNYai8gzhofjw-TRgjRnfBa-x6gpmaT6iAtFLetR9WJDUx8DakpUPaLyBZWPkU8_luS3tyWZtzdEdojsUpITJzkOIk_XIMmmaREhiOzzb4ogtMfdZL3HaPuELfjRalwTVD1htH35sm8Wp-etwFt-P1nf1149JhJPpaXsBJpHnRWOhSIUAZg3tmiFd4USGrsBmOgEcCwcluYMFvue6uno_hMkIo8tlkIJT70w-ne5_skGwmFm1DB64LizRuHgGJXwZqk-wu_Ligf0OmoWd8aP3lsXK9FGaCk0YG1GfRaaYzN4bTR8jkx2BJHndUnqpRMcuujHnXmThlGJpwt68VhUBKO6XLpEqjK2KnmB9vZjSTS2b7KvSU5y7uByT1wOUL1M_f4r-WJESGepgmIwQnuw8VrFa0aolIiQuK5N4S0dBqGPhaK-X0y8HSHbOE_ZqRis8bkrY9eBLZy4wmK-y7bpWhdsGJelI2iwghXxNfls1QH1owW3mCLy1NSt8Ig8I_JEE_AEXQKVwIKkl0RDgqtgzs60A81AZClARbo7fll4U_M73t3xxUauya5dhPRyZqEiN97UkRcsPmB6XAawQoH2VBZXyqj7rmXKDN-1Xdspob_rBeuE_ME-6t0P0QUzmv-g_nFT78x3ZfizVOLCWcX-FH18OEXFJDk3kyB0oDJRTQfjEx1aNbELC1SOmbViIV5RLYYsgjxnpiibGajMnFBTeRfXBTbMrNOWSTFcuvduUZ0VZez9_X1WvEeZG_5Jfjdp3fdAeUvveHvH3Y0zZe4Eo7ky4aboFCjBLzfFXEISvi6CGqiwN4X70Hfmgafzu4TYAE3jbmaYcrnSs00k5XxN6V5bluCUxdMsXxImH5Z8WDJiPAEk6BKoIeOUwpULnUJ0ybfrM-Sbcu1mg_6ezKuCtUYtbFjYNTPtbWK90F57eRMGOjrI4pBCnNJTZ-AZIWPK7JQCnlwGyGYuL6eylBrTXiEfYMgnGHKB4VZhyIcaTseMs16zmeRdwkkvNj1d2OzvZpz93OLnZr-cZ8iJBhn_3tuZN9VuEUhZ72ZekW2zCHW5b2a-WZOZNptNteh3631cIP9nmvgD-17oExYeu96MkuOehjgggcZCCy-oFFfgceb68mWq40Q1f5p6sIBb6oBj03XYdNOs8HVye1jxQ8X31Z6u4LDelvV619S77ao_QENYy2HTrNekqat6DVVNW85pU29LqNcrcSAlqct1Scp9uSu3D9s1p4TveF3zDtoNRXUJigr5IGVQD8YeV8K5EQ7bZltWK0lbkG6aOgm5TUD__ONfz8Wv-KXavKzsIboW7Xh0qC6lcN7dgnnh5TS1RpdfaPOCX2_zFT7303FNM2mcXT9NpEF8n2FXo5WH3vshTi-IvCLyehS-H9sHFl-n17hvhvil_i8wj8jrVJFD5HUq6n8BAAD__9W6lkA">