Skip to content

Conversation

@catap
Copy link

@catap catap commented Jan 13, 2025

@ilya-fedin
Copy link
Contributor

Did you test it with all of: GCC, AppleClang and MSVC? This is being used by 3 compilers.

@catap
Copy link
Author

catap commented Mar 8, 2025

It was discovered by bulk-build in OpenBSD, and this patch is already used in OpenBSD ports: openbsd/ports@b9f167d

Thus, it is reused the same march which is used by upstream of libyuv.

@ilya-fedin
Copy link
Contributor

ilya-fedin commented Mar 8, 2025

This doesn't really answer my question. Are you sure your change won't break other compilers/platforms I mentioned?

@catap
Copy link
Author

catap commented Mar 8, 2025

I have no idea, nor I had tested it.

Anyway, upstream seems to use it for all arm64/aarch64 builds and this is required minimal march to compile compare_neon64.cc which uses udot instruction.

@ilya-fedin
Copy link
Contributor

ilya-fedin commented Mar 8, 2025

No? I see it's under NOT MSVC upstream. And Google generally seem to not to use AppleClang for their builds? So the build system could not account for it. This needs testing.

@catap
Copy link
Author

catap commented Mar 8, 2025

Just to let you know. Without this march it fails as:

.../src/third_party/libyuv/source/compare_neon64.cc:175:8: error: instruction requires: dotprod
      "udot        v4.4s, v0.16b, v6.16b         \n"
       ^
<inline asm>:14:1: note: instantiated into assembly here
udot        v4.4s, v0.16b, v6.16b         
^

@ilya-fedin
Copy link
Contributor

ilya-fedin commented Mar 8, 2025

With this march it will likely fail with unknown argument error on various compilers. On MSVC for sure.

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 this pull request may close these issues.

2 participants