DLTcollab / sse2neon

A translator from Intel SSE intrinsics to Arm/Aarch64 NEON implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error compiling with GCC 8.3.0

gorgeousboy opened this issue · comments

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.
捕获

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.

$ 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

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

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

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.

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

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).