[clang] [clang][RISCV] Extend intrinsic size check variable from 16 -> 32 bits. NFC (PR #111481)

Craig Topper via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 8 09:37:35 PDT 2024


topperc wrote:

> > Why don’t any of our lit tests that use every intrinsic catch it?
> 
> Somehow if we add more "target-feature" the intrinsics increase, I'm not sure why. For example:
> 
> ```
> test.c
> 
> #include "riscv_vector.h"
>   vfloat16mf4x7_t test_vlseg7e16ff_v_f16mf4x7(const _Float16 *base, size_t *new_vl, size_t vl) {
>   return __riscv_vlseg7e16ff_v_f16mf4x7(base, new_vl, vl);
> }
> ```
> 
> Compile with this command:
> 
> ```
> clang -cc1 -triple riscv64-- -S -target-feature +v -target-feature +zvfh -target-abi lp64d test.c
> ```
> 
> generate 61674 intrinsics. However if we add `-target-feature +zvfbfmin`
> 
> ```
> clang -cc1 -triple riscv64-- -S -target-feature +v -target-feature +zvfh -target-feature +zvfbfmin -target-abi lp64d test.c
> ```
> 
> generate 64568 intrinsics
> 
> it's weird.

Why is it weird? Some intrinsics require specific features. If that feature isn't enabled, the intrinsic is skipped.

https://github.com/llvm/llvm-project/pull/111481


More information about the cfe-commits mailing list