[PATCH] D130956: [X86][MC] Always emit `rep` prefix for `bsf`

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 3 14:44:21 PDT 2022


craig.topper added a comment.

In D130956#3697844 <https://reviews.llvm.org/D130956#3697844>, @fmayer wrote:

> This seems related to an error we see on our sanitizer bots: https://lab.llvm.org/buildbot/#/builders/37/builds/15446/steps/33/logs/stdio
>
>   FAIL: Builtins-i386-linux :: ffssi2_test.c (2860 of 8387)
>   ******************** TEST 'Builtins-i386-linux :: ffssi2_test.c' FAILED ********************
>   Script:
>   --
>   : 'RUN: at line 1';       /b/sanitizer-x86_64-linux/build/llvm_build64/bin/clang   -gline-tables-only  -m32 -DCOMPILER_RT_HAS_FLOAT16  -fno-builtin -I /b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/lib/builtins -nodefaultlibs /b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/builtins/Unit/ffssi2_test.c /b/sanitizer-x86_64-linux/build/compiler_rt_build/lib/linux/libclang_rt.builtins-i386.a -lc -lm -o /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/builtins/Unit/I386LinuxConfig/Output/ffssi2_test.c.tmp &&  /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/builtins/Unit/I386LinuxConfig/Output/ffssi2_test.c.tmp
>   --
>   Exit Code: 1
>   Command Output (stdout):
>   --
>   error in __ffssi2(0x0) = 33, expected 0
>   --
>   ********************
>   Testing:  0.. 10.. 20.. 30.
>   FAIL: Builtins-x86_64-linux :: ffssi2_test.c (3084 of 8387)
>   ******************** TEST 'Builtins-x86_64-linux :: ffssi2_test.c' FAILED ********************
>   Script:
>   --
>   : 'RUN: at line 1';       /b/sanitizer-x86_64-linux/build/llvm_build64/bin/clang   -gline-tables-only  -m64 -DCOMPILER_RT_HAS_FLOAT16  -fno-builtin -I /b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/lib/builtins -nodefaultlibs /b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/builtins/Unit/ffssi2_test.c /b/sanitizer-x86_64-linux/build/compiler_rt_build/lib/linux/libclang_rt.builtins-x86_64.a -lc -lm -o /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/builtins/Unit/X86_64LinuxConfig/Output/ffssi2_test.c.tmp &&  /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/builtins/Unit/X86_64LinuxConfig/Output/ffssi2_test.c.tmp
>   --
>   Exit Code: 1
>   Command Output (stdout):
>   --
>   error in __ffssi2(0x0) = 33, expected 0
>   --
>   ********************
>   Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..

Random guess, we forgot to take into account that tzcnt and bsf don't set the flags the same way. If the flags from the bsf are being used we can't put an f3 in front of it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D130956/new/

https://reviews.llvm.org/D130956



More information about the llvm-commits mailing list