================
@@ -65,7 +110,26 @@ CIRGenFunction::emitAArch64SVEBuiltinExpr(unsigned 
builtinID,
 
   assert(!cir::MissingFeatures::aarch64SVEIntrinsics());
 
+  auto *builtinIntrInfo = findARMVectorIntrinsicInMap(
+      aarch64SVEIntrinsicMap, builtinID, aarch64SVEIntrinsicsProvenSorted);
+
+  // The operands of the builtin call
+  llvm::SmallVector<mlir::Value> ops;
+
+  for (const auto *argExpr : expr->arguments())
+    ops.push_back(emitScalarExpr(argExpr));
----------------
banach-space wrote:

Agreed, let me fix that.

I've hit one issue though. 
[`converType`](https://github.com/llvm/llvm-project/blob/188507e54218c91832714fc50b24bd2fc2fd9383/clang/lib/CIR/CodeGen/CIRGenTypes.cpp?plain=1#L280-L596)
 does not handle these SVE types:
https://github.com/llvm/llvm-project/blob/188507e54218c91832714fc50b24bd2fc2fd9383/clang/include/clang/Basic/AArch64ACLETypes.def?plain=1#L175-L239

I don't need those types for _this_ PR, so would rather avoid adding them here. 
However, without a proper conversion I am unable to implement a logic similar 
to this:
https://github.com/llvm/llvm-project/blob/188507e54218c91832714fc50b24bd2fc2fd9383/clang/lib/CodeGen/TargetBuiltins/ARM.cpp?plain=1#L4574-L4576
 

I will leave a FIXME in the newly added `getAArch64SVEProcessedOperands` for 
now.

https://github.com/llvm/llvm-project/pull/174433
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to