================
@@ -185,8 +186,14 @@ static Value *expandFloatDotIntrinsic(CallInst *Orig, 
Value *A, Value *B) {
         /* gen_crash_diag=*/false);
     return nullptr;
   }
-  return Builder.CreateIntrinsic(ATy->getScalarType(), DotIntrinsic,
-                                 ArrayRef<Value *>{A, B}, nullptr, "dot");
+
+  SmallVector<Value *> Args;
+  for (int I = 0; I < NumElts; ++I)
----------------
farzonl wrote:

Now that we had the new DirectX target builtins I had another thought on how to 
do this that would elimate our convert one intrinsic to another intrinsic trick 
we are doing here. Just expose dot2, dot3, and dot4 in the frontend. If we are 
comfortable with doing scalarization in the frontend for dot2add then does it 
make sense to do that for these fdot cases?

Downside is we would need sema check for these 3 new cases which seems like 
overkill and maybe disqualifies this idea.

https://github.com/llvm/llvm-project/pull/134570
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to