Open hjl-tools opened 6 years ago
As of 2831a317b689c7f005a29f008a8e4c24485c0711 we should at least warn on ABI mismatches. But we still pass large vectors differently than gcc.
Candidate patch https://reviews.llvm.org/D53919
If I'm understanding what's happening right. The frontend is always sending the type directly into IR as the full vector type. The backend will try to fit that type into 4 of whatever vector register width is available. If it doesn't fit it falls back to memory.
@llvm/issue-subscribers-backend-x86
Author: None (hjl-tools)
Extended Description
-mno-avx should pass v32qi as before AVX was enabled. For example,
If there were AVX1024, clang would have passed y in vector register. When AVX1024 were disabled, clang would have passed y in memory and issued an ABI change warning.