This bugzilla service is closed. All entries have been migrated to https://gitlab.com/libeigen/eigen
Bug 1191 - Clang/ARM transforms VMLA into VMUL+VADD under our feet!
Summary: Clang/ARM transforms VMLA into VMUL+VADD under our feet!
Status: RESOLVED FIXED
Alias: None
Product: Eigen
Classification: Unclassified
Component: Core - vectorization (show other bugs)
Version: 3.3 (current stable)
Hardware: ARM - NEON Android
: Normal Unknown
Assignee: Nobody
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-04 20:38 UTC by Benoit Jacob
Modified: 2019-12-04 15:36 UTC (History)
4 users (show)



Attachments

Description Benoit Jacob 2016-04-04 20:38:11 UTC
See e.g. http://lists.llvm.org/pipermail/llvm-dev/2013-December/068806.html

For us this is a disaster, since this means that we can't trust EIGEN_HAS_SINGLE_INSTRUCTION_MADD. So we end up mis-shooting the number of registers, and spilling!

The work-around for this is going to be to reimplement the pmadd in inline assembly.
Comment 1 Benoit Jacob 2016-04-04 20:39:52 UTC
Notes:
 * this affects all known versions of Clang/ARM, but not Aarch64.
 * this depends on -mcpu= settings. Affected settings include -mcpu=cortex-a8 and -mcpu=cortex-a7. Since the former is the default on -march=armv7-a, that is a very common case.
Comment 3 Nobody 2019-12-04 15:36:48 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/1191.

Note You need to log in before you can comment on or make changes to this bug.