Skip to content
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

Error compiling with GCC 8.3.0 #622

Closed
gorgeousboy opened this issue Dec 15, 2023 · 7 comments · Fixed by #625
Closed

Error compiling with GCC 8.3.0 #622

gorgeousboy opened this issue Dec 15, 2023 · 7 comments · Fixed by #625
Assignees

Comments

@gorgeousboy
Copy link

gorgeousboy commented Dec 15, 2023

When I use gcc8.3.0 and gcc9.2.1 to compile and test on ubuntu and redhat, the following error is reported, but when I compile with gcc11.2.0 it is normal, but I don't see you say that there is a limit to the version of gcc, I want to know where this situation is caused.
捕获

@jserv
Copy link
Member

jserv commented Dec 15, 2023

When I use gcc8.3.0 and gcc9.2.1 to compile and test on ubuntu and redhat, the following error is reported, but when I compile with gcc11.2.0 it is normal, but I don't see you say that there is a limit to the version of gcc, I want to know where this situation is caused.

Thanks for reporting. Don't use screenshots. Use formatting syntax instead.

@gorgeousboy
Copy link
Author

gorgeousboy commented Dec 15, 2023

$ make check
g++ -o tests/binding.o -Wall -Wcast-qual -I. -march=armv8-a+fp+simd -std=gnu++14 -c -MMD -MF tests/binding.o.d tests/binding.cpp
g++ -o tests/common.o -Wall -Wcast-qual -I. -march=armv8-a+fp+simd -std=gnu++14 -c -MMD -MF tests/common.o.d tests/common.cpp
g++ -o tests/impl.o -Wall -Wcast-qual -I. -march=armv8-a+fp+simd -std=gnu++14 -c -MMD -MF tests/impl.o.d tests/impl.cpp
/tmp/cc4Gny7I.s: Assembler messages:
/tmp/cc4Gny7I.s:45475: Error: operand mismatch -- `rev16 v0.4h,v0.4h'
/tmp/cc4Gny7I.s:45475: Info:    did you mean this?
/tmp/cc4Gny7I.s:45475: Info:            rev16 v0.8b, v0.8b
/tmp/cc4Gny7I.s:45475: Info:    other valid variant(s):
/tmp/cc4Gny7I.s:45475: Info:            rev16 v0.16b, v0.16b
/tmp/cc4Gny7I.s:82799: Error: operand mismatch -- `rev32 v0.4s,v0.4s'
/tmp/cc4Gny7I.s:82799: Info:    did you mean this?
/tmp/cc4Gny7I.s:82799: Info:            rev32 v0.8b, v0.8b
/tmp/cc4Gny7I.s:82799: Info:    other valid variant(s):
/tmp/cc4Gny7I.s:82799: Info:            rev32 v0.16b, v0.16b
/tmp/cc4Gny7I.s:82799: Info:            rev32 v0.4h, v0.4h
/tmp/cc4Gny7I.s:82799: Info:            rev32 v0.8h, v0.8h
/tmp/cc4Gny7I.s:105362: Error: operand mismatch -- `rev16 v0.8h,v0.8h'
/tmp/cc4Gny7I.s:105362: Info:    did you mean this?
/tmp/cc4Gny7I.s:105362: Info:           rev16 v0.8b, v0.8b
/tmp/cc4Gny7I.s:105362: Info:    other valid variant(s):
/tmp/cc4Gny7I.s:105362: Info:           rev16 v0.16b, v0.16b
/tmp/cc4Gny7I.s:128015: Error: operand mismatch -- `rev16 v0.8h,v0.8h'
/tmp/cc4Gny7I.s:128015: Info:    did you mean this?
/tmp/cc4Gny7I.s:128015: Info:           rev16 v0.8b, v0.8b
/tmp/cc4Gny7I.s:128015: Info:    other valid variant(s):
/tmp/cc4Gny7I.s:128015: Info:           rev16 v0.16b, v0.16b
make: *** [Makefile:71: tests/impl.o] Error 1

Another error I encountered while compiling

Test mm_aesenc_si128                passed
Test mm_aesdec_si128                passed
Test mm_aesenclast_si128            passed
Test mm_aesdeclast_si128            passed
Test mm_aesimc_si128                passed
Test mm_aeskeygenassist_si128       passed
Test mm_clmulepi64_si128            passed
Test mm_get_denormals_zero_mode     passed
Test mm_popcnt_u32                  passed
Test mm_popcnt_u64                  passed
Test mm_set_denormals_zero_mode     passed
Test rdtsc                          passed
SSE2NEONTest Complete!
Passed:  495
Failed:  3
Ignored: 25
Coverage rate: 94.64%
make: *** [Makefile:81: check] Error 255

@jserv
Copy link
Member

jserv commented Dec 15, 2023

Did you use GNU Toolchain from Arm/Linaro? That is, GNU-A Downloads.

@gorgeousboy
Copy link
Author

I didn't do that, I just upgraded the gcc to a higher version and these issues were solved.

@jserv
Copy link
Member

jserv commented Dec 15, 2023

I didn't do that, I just upgraded the gcc to a higher version and these issues were solved.

To reproduce and help resolve the issue on your end, I would suggest downloading GNU-A and selecting gcc-8.3.0 for your experiments. Please proceed with this and report back the results. Once you do, I can begin to reproduce the issue on my side.

@gorgeousboy
Copy link
Author

I did what you suggested, but it still has that error.

@jserv
Copy link
Member

jserv commented Dec 16, 2023

I did what you suggested, but it still has that error.

Yes, I am able to reproduce with both gcc-8.3.0 and gcc-9.2.1 (Arm/Linaro builds).

howjmay added a commit to howjmay/sse2neon that referenced this issue Mar 4, 2024
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
howjmay added a commit to howjmay/sse2neon that referenced this issue Mar 4, 2024
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
howjmay added a commit to howjmay/sse2neon that referenced this issue Mar 4, 2024
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
howjmay added a commit to howjmay/sse2neon that referenced this issue Mar 21, 2024
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
howjmay added a commit to howjmay/sse2neon that referenced this issue Mar 21, 2024
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
howjmay added a commit to howjmay/sse2neon that referenced this issue Mar 21, 2024
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
howjmay added a commit to howjmay/sse2neon that referenced this issue Mar 28, 2024
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
howjmay added a commit to howjmay/sse2neon that referenced this issue Mar 28, 2024
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
howjmay added a commit to howjmay/sse2neon that referenced this issue Mar 29, 2024
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
howjmay added a commit to howjmay/sse2neon that referenced this issue Mar 29, 2024
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
howjmay added a commit to howjmay/sse2neon that referenced this issue Mar 29, 2024
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
jserv pushed a commit that referenced this issue Mar 29, 2024
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
unexpected instructions. Fixing the error by not running the tests with
gcc prior to 10. 

Close #622
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants