[clang] let Neon builtin function accept a const variable (PR #144625)

via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 18 20:01:18 PDT 2025


scout-zeng wrote:

> I think something like your patch solves the original testcase from #139033. (Actually, it crashes in codegen, but that's an easy fix.) And I thought you wanted specifically that...?
> 
> Your new testcase will never work; the NEON intrinsic is specifically specified to only allow operands which produce an immediate encoding. For a shift with a variable amount, you want something like `vshlq_s64(a.vect_s64, vdupq_n_s64(mc));`.

Actually,  I agree [#139033](https://github.com/llvm/llvm-project/issues/139033) can be solved by this patch. 
Just as you mentioned, Neon Intrinsic is only allowed immediate code. What can I do if I want to allow operands like variables? 
Could you help evaluate the magnitude of this workload and whether it is feasible, from the perspective of the Clang compiler?

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


More information about the cfe-commits mailing list