@@ -261,14 +261,59 @@ even multilib is disable, but the user must ensure extra multilib test
261261configuration can be work with existing lib/multilib, e.g. rv32gcv/ilp32 test
262262can't work if multilib didn't have any rv32 multilib.
263263
264- ` --with-extra-multilib-test ` also allow you append additional build flags after
265- the arch/ABI, for example: built a linux toolchain with ` rv64gc/lp64d ` , and you
266- can test more configuration like ` rv64gcv/lp64d ` with one additional build config
267- ` --param=riscv-autovec-lmul=dynamic ` , then you can use --with-extra-multilib-test
268- to specify that via
269- ` --with-extra-multilib-test="rv64gcv-lp64d:--param=riscv-autovec-lmul=dynamic" ` .
270- Then the testing will build the run test with option ` --param=riscv-autovec-lmul=dynamic `
271- before run the ` rv64gcv-lp64d ` test.
264+ ` --with-extra-multilib-test ` also support more complicated format to fit the
265+ requirements of end-users. First of all, the argument is a list of test
266+ configurations. Each test configuration are separated by ` ; ` . For example:
267+
268+ ` rv64gcv-lp64d;rv64_zvl256b_zvfh-lp64d `
269+
270+ For each test configuration, it has two parts, aka required arch-abi part and
271+ optional build flags. We leverage ` : ` to separate them with some restrictions.
272+
273+ * arch-abi should be required and there must be only one at the begining of
274+ the test configuration.
275+ * build flags is a array-like flags after the arch-abi, there will be two
276+ ways to arrange them, aka AND, OR operation.
277+ * If you would like the flags in build flags array acts on arch-abi
278+ __ simultaneously__ , you can use ` : ` to separate them. For example:
279+
280+ ```
281+ rv64gcv-lp64d:--param=riscv-autovec-lmul=dynamic:--param=riscv-autovec-preference=fixed-vlmax
282+ ```
283+
284+ will be consider as one target board same as below:
285+
286+ ```
287+ riscv-sim/-march=rv64gcv/-mabi=lp64d/-mcmodel=medlow/--param=riscv-autovec-lmul=dynamic/--param=riscv-autovec-preference=fixed-vlmax
288+ ```
289+
290+ * If you would like the flags in build flags array acts on arch-abi
291+ __ respectively__ , you can use ',' to separate them. For example:
292+
293+ ```
294+ rv64gcv-lp64d:--param=riscv-autovec-lmul=dynamic,--param=riscv-autovec-preference=fixed-vlmax
295+ ```
296+
297+ will be consider as two target boards same as below:
298+
299+ ```
300+ riscv-sim/-march=rv64gcv/-mabi=lp64d/-mcmodel=medlow/--param=riscv-autovec-preference=fixed-vlmax
301+ riscv-sim/-march=rv64gcv/-mabi=lp64d/-mcmodel=medlow/--param=riscv-autovec-lmul=dynamic
302+ ```
303+
304+ * However, you can also leverage AND(` : ` ), OR(` , ` ) operator together but the
305+ OR(` , ` ) will always have the higher priority. For example:
306+
307+ ```
308+ rv64gcv-lp64d:--param=riscv-autovec-lmul=dynamic:--param=riscv-autovec-preference=fixed-vlmax,--param=riscv-autovec-lmul=m2
309+ ```
310+
311+ will be consider as tow target boars same as below:
312+
313+ ```
314+ riscv-sim/-march=rv64gcv/-mabi=lp64d/-mcmodel=medlow/--param=riscv-autovec-lmul=dynamic/--param=riscv-autovec-preference=fixed-vlmax
315+ riscv-sim/-march=rv64gcv/-mabi=lp64d/-mcmodel=medlow/--param=riscv-autovec-lmul=m2
316+ ```
272317
273318### LLVM / clang
274319
0 commit comments