================ @@ -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) ---------------- shiltian wrote:
It looks like they are preserved anyway. Clang only has special handling of 3-element vector. https://github.com/llvm/llvm-project/pull/104661 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits