[llvm] [NVPTX] Generalize and extend upsizing when lowering 8/16-bit-element vector loads/stores (PR #119622)
Drew Kersnar via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 12 14:00:52 PST 2024
================
@@ -3206,14 +3219,40 @@ NVPTXTargetLowering::LowerSTOREVector(SDValue Op, SelectionDAG &DAG) const {
EVT EltVT = ValVT.getVectorElementType();
unsigned NumElts = ValVT.getVectorNumElements();
+ if (UpsizeElementTypes) {
+ switch (ValVT.getSimpleVT().SimpleTy) {
+ default:
+ llvm_unreachable("Unexpected Vector Type");
+ case MVT::v8i8: // <2 x i8x4>
+ NumElts = 2;
+ EltVT = MVT::v4i8;
+ break;
+ case MVT::v8f16: // <4 x f16x2>
+ NumElts = 4;
+ EltVT = MVT::v2f16;
+ break;
+ case MVT::v8bf16: // <4 x bf16x2>
+ NumElts = 4;
+ EltVT = MVT::v2bf16;
+ break;
+ case MVT::v8i16: // <4 x i16x2>
+ NumElts = 4;
+ EltVT = MVT::v2i16;
+ break;
+ case MVT::v16i8: // <4 x i8x4>
+ NumElts = 4;
+ EltVT = MVT::v4i8;
+ break;
+ }
----------------
dakersnar wrote:
Not super familiar with this syntax, do you know how to get around this issue? The problem is that we want to reassign the same variables that we pass into the lambda, rather than create new ones.
![image](https://github.com/user-attachments/assets/b97c7d57-d314-45d2-9962-6e98a93a9a8a)
![image](https://github.com/user-attachments/assets/0ac19cfc-bcc9-487d-bce1-3f51859a6420)
https://github.com/llvm/llvm-project/pull/119622
More information about the llvm-commits
mailing list