[llvm] [SPARC] Use lzcnt to implement CTLZ when we have VIS3 (PR #135715)

Rainer Orth via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 21 07:32:23 PDT 2025


rorth wrote:

Unfortunately, this patch causes a bunch of new failures:
```
  Builtins-sparcv9-sunos :: clzdi2_test.c
  Builtins-sparcv9-sunos :: clzti2_test.c
  Builtins-sparcv9-sunos :: compiler_rt_logbf_test.c
  Builtins-sparcv9-sunos :: compiler_rt_logbl_test.c
  Builtins-sparcv9-sunos :: compiler_rt_scalbn_test.c
  Builtins-sparcv9-sunos :: compiler_rt_scalbnf_test.c
  Builtins-sparcv9-sunos :: compiler_rt_scalbnl_test.c
  Builtins-sparcv9-sunos :: divmodsi4_test.c
  Builtins-sparcv9-sunos :: divmodti4_test.c
  Builtins-sparcv9-sunos :: divti3_test.c
  Builtins-sparcv9-sunos :: extenddftf2_test.c
  Builtins-sparcv9-sunos :: extendhfdf2_test.c
  Builtins-sparcv9-sunos :: extendhfsf2_test.c
  Builtins-sparcv9-sunos :: floatdisf_test.c
  Builtins-sparcv9-sunos :: floatditf_test.c
  Builtins-sparcv9-sunos :: floatsitf_test.c
  Builtins-sparcv9-sunos :: floattidf_test.c
  Builtins-sparcv9-sunos :: floattisf_test.c
  Builtins-sparcv9-sunos :: floattitf_test.c
  Builtins-sparcv9-sunos :: floatundisf_test.c
  Builtins-sparcv9-sunos :: floatunditf_test.c
  Builtins-sparcv9-sunos :: floatunsitf_test.c
  Builtins-sparcv9-sunos :: floatuntidf_test.c
  Builtins-sparcv9-sunos :: floatuntitf_test.c
  Builtins-sparcv9-sunos :: moddi3_test.c
  Builtins-sparcv9-sunos :: modti3_test.c
  Builtins-sparcv9-sunos :: muloti4_test.c
  Builtins-sparcv9-sunos :: multf3_test.c
  Builtins-sparcv9-sunos :: mulvti3_test.c
  Builtins-sparcv9-sunos :: udivdi3_test.c
  Builtins-sparcv9-sunos :: udivmoddi4_test.c
  Builtins-sparcv9-sunos :: udivmodsi4_test.c
  Builtins-sparcv9-sunos :: udivmodti4_test.c
  Builtins-sparcv9-sunos :: udivsi3_test.c
  Builtins-sparcv9-sunos :: udivti3_test.c
  Builtins-sparcv9-sunos :: umoddi3_test.c
  Builtins-sparcv9-sunos :: umodsi3_test.c
  Builtins-sparcv9-sunos :: umodti3_test.c
```
However, the are only seen in a 2-stage build and only in a `projects` build, since builtin testing is still missing from the default `runtimes` build (cf. Issue #72511).

When spot-checking a few of the failing tests, the cause seemed to be always the same: the tests run into infinite recursion in `__clzdi2` until the stack limit is reached when they `SEGV`.

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


More information about the llvm-commits mailing list