================ @@ -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