This bugzilla service is closed. All entries have been migrated to https://gitlab.com/libeigen/eigen

Bug 1714

Summary: AVX512 PacketMath add quarter type
Product: Eigen Reporter: neumann
Component: Core - vectorizationAssignee: Nobody <eigen.nobody>
Status: DECISIONNEEDED ---    
Severity: Internal Design CC: chtz, gael.guennebaud, jacob.benoit.1, markos
Priority: Normal    
Version: 3.4 (development)   
Hardware: x86 - AVX512   
OS: All   
Whiteboard:
Bug Depends on: 692    
Bug Blocks:    

Description neumann 2019-05-14 09:35:01 UTC
AVX512 could define a quarter type since there are three usable types (ignoring suffixes):
__mm512
__mm256
__mm128

so dealing with a vector of ten double elements could be done by
one m512 and one m128 instruction/packet.
Comment 1 Christoph Hertzberg 2019-05-24 15:02:39 UTC
Adding a `quarter` typedef would be trivial, but properly using that not so much.

E.g., for a vector of size 14 it might be better to either use two overlapping vectors of size 8, or (with AVX512) mask one vector to size 6.
Also, even without AVX512, there could be use cases for using just one half of a __mm128 packet (for two floats).


If you need this in your own code, you can use the `half` typedef twice.
Comment 2 Nobody 2019-12-04 18:38:32 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/1714.