-
Notifications
You must be signed in to change notification settings - Fork 211
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
test: Avoid errors when cross compile by gcc-8.3/9.2 #625
Conversation
CI reported "gcc-arm-8.3-2019.02-x86_64-arm-linux-gnueabihf.tar.xz: Cannot open: No such file or directory". Can you check? |
e7a63fe
to
e16335b
Compare
@jserv |
I extracted the GNU Toolchain to
|
Similarly, the following messages were raised by GitHub Actions:
|
9b55316
to
c032914
Compare
@jserv The problems was caused by the test code. |
It sounds great. Please go ahead for fixing test code. |
5651202
to
0aa746d
Compare
tests/impl.cpp
Outdated
@@ -2813,26 +2813,31 @@ result_t test_mm_sfence(const SSE2NEONTestImpl &impl, uint32_t iter) | |||
|
|||
result_t test_mm_shuffle_pi16(const SSE2NEONTestImpl &impl, uint32_t iter) | |||
{ | |||
#if (__GNUC__ == 8 && __GNUC_MINOR__ == 3) || \ |
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.
I wonder if gcc versions other than 8.3 and 9.2 encounter the same problem or not.
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.
Is there any other version that suggested to check?
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.
Is there any other version that suggested to check?
We have to clarify if the known issue appears in gcc version prior to 8.3.
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.
I have added the supported versions in README. And I found even g++-8.4 would meet the same compiling error, therefore I have made the corresponding change in impl.cpp
5b6e7be
to
5be1d59
Compare
README.md
Outdated
@@ -60,6 +60,10 @@ reciprocal square root of `0.0`, then INF * `0.0` using `vmulq_f32`). In contras | |||
the SSE counterpart produces INF if a source value is `0.0`. | |||
As a result, additional treatments should be applied to ensure consistency between the conversion and its SSE counterpart. | |||
|
|||
## Requirement | |||
|
|||
We advise developers to utilize sse2neon.h with GCC version 10 or higher, or Clang version 11 or higher. While sse2neon.h might be compatible with earlier versions, certain vector operation errors have been identified in those versions. For further details, refer to the discussion in issue [#622](https://github.com/DLTcollab/sse2neon/issues/622). |
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.
Refine the text with a third-person view.
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.
done
92b57d5
to
fadc7c4
Compare
tests/impl.cpp
Outdated
@@ -2813,26 +2813,29 @@ result_t test_mm_sfence(const SSE2NEONTestImpl &impl, uint32_t iter) | |||
|
|||
result_t test_mm_shuffle_pi16(const SSE2NEONTestImpl &impl, uint32_t iter) | |||
{ | |||
#if (__GNUC__ == 8) || (__GNUC__ == 9 && __GNUC_MINOR__ == 2) | |||
#error gcc-8.3, gcc-9.2 would cause operand mismatch error here |
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.
Refine the message:
Using older gcc versions can lead to an operand mismatch error. This issue affects all versions prior to gcc 10.
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.
done
bf4cde5
to
c84256a
Compare
Cross compiling with gcc-8.3 and gcc-9.2 would cause operand mismatch error in some tests. The C code of some tests were compiled into stange instructions. Fixing the error by not running the tests when using gcc-8.3 and gcc-9.2 fixes DLTcollab#622
Cross compiling with gcc-8.3 and gcc-9.2 would cause operand mismatch
error in some tests. The C code of some tests were compiled into
stange instructions. Fixing the error by not running the tests
when using gcc-8.3 and gcc-9.2
fixes #622