[llvm] [SLP]Improve minbitwidth analysis. (PR #84334)

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 7 13:07:16 PST 2024


alexey-bataev wrote:

> Thanks for the quick response with the info on what was changed, and that there was an intent to fix the xxhash miscompile!
> 
> Given that response, I went to double-check my work to see if I'd made a mistake in testing. Unfortunately, not. I've now re-verified that the test still fails with clang built at this revision, and doesn't fail with clang built at the prior revision.
> 
> Maybe interesting (or maybe not), now the check with size 129 _also_ fails.
> 
> ```
> third_party/llvm/llvm-project/llvm/unittests/Support/xxhashTest.cpp:48: Failure
> Expected equality of these values:
>   uint64_t(0x9013fb74ca603e0c)
>     Which is: 10381918045049208332
>   xxh3_64bits(ArrayRef(a, size_t(33)))
>     Which is: 3308700454355487325
> 
> third_party/llvm/llvm-project/llvm/unittests/Support/xxhashTest.cpp:49: Failure
> Expected equality of these values:
>   uint64_t(0xfa5271fcce0db1c3)
>     Which is: 18037604788174959043
>   xxh3_64bits(ArrayRef(a, size_t(64)))
>     Which is: 15548882779349196076
> 
> third_party/llvm/llvm-project/llvm/unittests/Support/xxhashTest.cpp:50: Failure
> Expected equality of these values:
>   uint64_t(0x79c42431727f1012)
>     Which is: 8774177768817496082
>   xxh3_64bits(ArrayRef(a, size_t(65)))
>     Which is: 9026354738766114493
> 
> third_party/llvm/llvm-project/llvm/unittests/Support/xxhashTest.cpp:51: Failure
> Expected equality of these values:
>   uint64_t(0x591ee0ddf9c9ccd1)
>     Which is: 6421817362660052177
>   xxh3_64bits(ArrayRef(a, size_t(96)))
>     Which is: 14257441473594075054
> 
> third_party/llvm/llvm-project/llvm/unittests/Support/xxhashTest.cpp:52: Failure
> Expected equality of these values:
>   uint64_t(0x8ffc6a3111fe19da)
>     Which is: 10375284400542587354
>   xxh3_64bits(ArrayRef(a, size_t(97)))
>     Which is: 17112387889451439326
> 
> third_party/llvm/llvm-project/llvm/unittests/Support/xxhashTest.cpp:53: Failure
> Expected equality of these values:
>   uint64_t(0x06a146ee9a2da378)
>     Which is: 477741026080826232
>   xxh3_64bits(ArrayRef(a, size_t(128)))
>     Which is: 15939254768337478897
> 
> third_party/llvm/llvm-project/llvm/unittests/Support/xxhashTest.cpp:54: Failure
> Expected equality of these values:
>   uint64_t(0xbc7138129bf065da)
>     Which is: 13578696004075546074
>   xxh3_64bits(ArrayRef(a, size_t(129)))
>     Which is: 14895047307860736276
> ```

Hmm, this is what I see for both SSE and AVX512
[----------] 2 tests from xxhashTest
[ RUN      ] xxhashTest.Basic
[       OK ] xxhashTest.Basic (0 ms)
[ RUN      ] xxhashTest.xxh3
[       OK ] xxhashTest.xxh3 (0 ms)
[----------] 2 tests from xxhashTest (0 ms total)

Can you provide your build flags? Also, did you try upstream compiler or downstream?

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


More information about the llvm-commits mailing list