[clang] [Clang] Remove 3-element vector load and store special handling (PR #104661)

Matt Arsenault via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 17 01:04:02 PST 2025


================
@@ -52,6 +52,17 @@ class AMDGPUABIInfo final : public DefaultABIInfo {
   void computeInfo(CGFunctionInfo &FI) const override;
   RValue EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,
                    AggValueSlot Slot) const override;
+
+  llvm::FixedVectorType *
+  getOptimalVectorType(llvm::FixedVectorType *T,
+                       const LangOptions &Opt) const override {
+    // We have legal instructions for 96-bit so 3x32 can be supported.
+    // FIXME: This check should be a subtarget feature as technically SI doesn't
+    // support it.
+    if (T->getNumElements() == 3 && getDataLayout().getTypeSizeInBits(T) == 96)
----------------
arsenm wrote:

Yes, it should be any 96-bit access 

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


More information about the cfe-commits mailing list