fhahn added a comment.

In D99037#2659477 <https://reviews.llvm.org/D99037#2659477>, @SaurabhJha wrote:

>> What code do you want to get out of this?  Are there e.g. vectorized 
>> float->double conversions we can use, or is the operation basically doomed 
>> to break the matrix apart and put it back together again?
>
> I think because matrices are vectors underneath, we should try vectorised 
> conversions.

I think there should be vector versions of common conversions in most modern 
vector instruction sets, e.g. both ARM64 and X86 (with varying levels of 
support, depending on the supported vector extensions) have vector instructions 
for sign extend i32 -> i64 and floating point extension float -> double: 
https://godbolt.org/z/jx4Ya4PP5. John, please let me know if you were referring 
to something else, but IIUC then it would be best to emit vector conversion for 
the full vector (that should also be the easiest in terms of codegen).

More recent instruction set versions also have specialized instructions for 
things like dot-products, that also extend/truncate some of their operands 
and/or results., which we could also make use of easily if we have the vector 
conversions.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99037/new/

https://reviews.llvm.org/D99037

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to