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

2025-06-19 Thread Eli Friedman via cfe-commits
efriedma-quic wrote: The NEON intrinsics specification (https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s64) specifically says the argument must be an immediate in the specified range. That's because it's supposed to map to an instruction which encodes the shift am

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

2025-06-18 Thread via cfe-commits
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

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

2025-06-18 Thread Eli Friedman via cfe-commits
efriedma-quic 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

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

2025-06-18 Thread via cfe-commits
scout-zeng wrote: Hi @efriedma-quic , I do not think this workaround can fix this issue. Because the clang compiler still gives me an error like 'argument to xxx must be a constant integer", which means the if condition in line 5670 is not true. I am confused about that. Can you give me some s

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

2025-06-18 Thread via cfe-commits
scout-zeng wrote: fixes [#139033](https://github.com/llvm/llvm-project/issues/139033#issuecomment-2868006401) https://github.com/llvm/llvm-project/pull/144625 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailm

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

2025-06-18 Thread Eli Friedman via cfe-commits
https://github.com/efriedma-quic edited https://github.com/llvm/llvm-project/pull/144625 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

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

2025-06-18 Thread Eli Friedman via cfe-commits
https://github.com/efriedma-quic commented: Needs regression tests (in clang/test/Sema/). For NEON intrinsics, and whatever other classes of intrinsics are affected by this. Please add a reference to the issue in the commit message, like "fixes #144625" (the initial comment on the pull reques

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

2025-06-17 Thread via cfe-commits
scout-zeng wrote: @efriedma-quic Hi Eli, if there is any problem, please let me know. https://github.com/llvm/llvm-project/pull/144625 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

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

2025-06-17 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang Author: None (scout-zeng) Changes `FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) { long long c = count.vect_s64[0]; const int mc = c; __m128i result_m128i; if (likely(c >= 0 && c < 64)) { result_m128i.vect_s64

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

2025-06-17 Thread via cfe-commits
github-actions[bot] wrote: Thank you for submitting a Pull Request (PR) to the LLVM Project! This PR will be automatically labeled and the relevant teams will be notified. If you wish to, you can add reviewers by using the "Reviewers" section on this page. If this is not working for you, it

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

2025-06-17 Thread via cfe-commits
https://github.com/scout-zeng created https://github.com/llvm/llvm-project/pull/144625 `FORCE_INLINE __m128i _mm_sll_epi64(__m128i a, __m128i count) { long long c = count.vect_s64[0]; const int mc = c; __m128i result_m128i; if (likely(c >= 0 && c < 64)) { result_m128i.vec