[llvm] [NVPTX] Generalize and extend upsizing when lowering 8/16-bit-element vector loads/stores (PR #119622)

Artem Belevich via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 13 11:26:32 PST 2024


================
@@ -3211,14 +3236,19 @@ NVPTXTargetLowering::LowerSTOREVector(SDValue Op, SelectionDAG &DAG) const {
     EVT EltVT = ValVT.getVectorElementType();
     unsigned NumElts = ValVT.getVectorNumElements();
 
+    if (UpsizeElementTypes) {
+      auto [NewNumElts, NewEltVT] = GetUpsizedNumEltsAndEltVT(NumElts, EltVT);
+      NumElts = NewNumElts;
+      EltVT = NewEltVT;
----------------
Artem-B wrote:

Right. We can't use `auto [X, Y]` on existing variables.

For that we need `std::tie()`: https://godbolt.org/z/TqcxrPjrG
```
std::tie(NumElts, EltVT) = GetUpsizedNumEltsAndEltVT(NumElts, EltVT);
```

https://github.com/llvm/llvm-project/pull/119622


More information about the llvm-commits mailing list