[llvm-dev] [cfe-dev] RFC: First-class Matrix type

David Greene via llvm-dev llvm-dev at lists.llvm.org
Thu Oct 11 07:56:03 PDT 2018


Adam Nemet via cfe-dev <cfe-dev at lists.llvm.org> writes:

>     %0 = load <4 x 4 x float>, <4 x 4 x float>* %a, align 16
>     %1 = load <4 x 4 x float>, <4 x 4 x float>* %b, align 16
>     %2 = call <4 x 4 x float>
>     @llvm.matrix.multiply.m4_4f32.m4_4f32.m4_4f32(<4 x 4 x float> %0,
>     <4 x 4 x float> %1)
>     store <4 x 4 x float> %2, <4 x 4 x float>* %c, align 16

This sounds very interesting.  Would it make sense to later expand the
idea to allow an arbitrary number of dimensions?  Maybe that doesn't
make sense if we're restricted to statically-known dimensions.

How would this relate to scalable vectors?  Most of the time matrix
dimensions are not known statically.  Would <n x m x float> be possible?

Do you have a prototype of this?

                       -David


More information about the llvm-dev mailing list