-
Notifications
You must be signed in to change notification settings - Fork 437
Attempted workaround for GCC PPC EMU128 test failure, refs #3024 #3027
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -149,14 +149,14 @@ struct TestLoadDup128 { | |
| constexpr size_t N128 = 16 / sizeof(T); | ||
| alignas(16) T lanes[N128]; | ||
| for (size_t i = 0; i < N128; ++i) { | ||
| lanes[i] = ConvertScalarTo<T>(1 + i); | ||
| lanes[i] = ConvertScalarTo<T>(hwy::Unpredictable1() + i); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This does not seem to fix the problem. It is likely a compiler bug specific to GCC 16 on ppc 64. Initial report:
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. hm :/ Thanks for filing the report. There is no harm in using Unpredictable1, this prevents test code from being optimized out and we're slowly moving toward that everywhere. |
||
| } | ||
|
|
||
| const size_t N = Lanes(d); | ||
| auto expected = AllocateAligned<T>(N); | ||
| HWY_ASSERT(expected); | ||
| for (size_t i = 0; i < N; ++i) { | ||
| expected[i] = ConvertScalarTo<T>(i % N128 + 1); | ||
| expected[i] = ConvertScalarTo<T>(i % N128 + hwy::Unpredictable1()); | ||
| } | ||
|
|
||
| HWY_ASSERT_VEC_EQ(d, expected.get(), LoadDup128(d, lanes)); | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be GCC instead of Clang?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair :) I copied from existing code, we've had the same problem on Clang, but this instance was indeed GCC.