[llvm] [Scalarizer][DirectX] support structs return types (PR #111569)
    Farzon Lotfi via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Thu Oct 17 13:06:58 PDT 2024
    
    
  
================
@@ -699,6 +730,22 @@ bool ScalarizerVisitor::splitCall(CallInst &CI) {
   if (isVectorIntrinsicWithOverloadTypeAtArg(ID, -1))
     Tys.push_back(VS->SplitTy);
 
+  if (AreAllMatchingVectors) {
+    Type *PrevType = CallType->getContainedType(0);
+    for (unsigned I = 1; I < CallType->getNumContainedTypes(); I++) {
+      Type *CurrType = cast<FixedVectorType>(CallType->getContainedType(I));
+      if (PrevType != CurrType) {
----------------
farzonl wrote:
I think you are still confused. `isVectorIntrinsicWithOverloadTypeAtArg ` doesn't check overloads for return types. Go look at that code path return will always be true.
https://github.com/llvm/llvm-project/pull/111569
    
    
More information about the llvm-commits
mailing list