[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
Mon Dec 16 11:26:16 PST 2024
================
@@ -3185,10 +3205,15 @@ NVPTXTargetLowering::LowerSTOREVector(SDValue Op, SelectionDAG &DAG) const {
case MVT::v4f16:
case MVT::v4bf16:
case MVT::v4f32:
- case MVT::v8f16: // <4 x f16x2>
+ // This is a "native" vector type
+ break;
+ case MVT::v8i8: // <2 x i8x4>
+ case MVT::v8f16: // <4 x f16x2>
case MVT::v8bf16: // <4 x bf16x2>
case MVT::v8i16: // <4 x i16x2>
- // This is a "native" vector type
+ case MVT::v16i8: // <4 x i8x4>
+ // This can be upsized into a "native" vector type
+ UpsizeElementTypes = true;
----------------
dakersnar wrote:
I implemented the above std::tie solution but let me know if you still think there is a better way. I'm still hesitant to fold the entire switch into the helper function because the switch is responsible for exiting early from `ReplaceLoadVector`/`LowerSTOREVector` and I don't think there is a clean way to do it, but if I'm missing something I'm happy to tweak it.
https://github.com/llvm/llvm-project/pull/119622
More information about the llvm-commits
mailing list