================
@@ -1492,26 +1492,125 @@ mlir::Value 
CIRGenFunction::emitX86BuiltinExpr(unsigned builtinID,
   case X86::BI__builtin_ia32_vpshrdw128:
   case X86::BI__builtin_ia32_vpshrdw256:
   case X86::BI__builtin_ia32_vpshrdw512:
+    cgm.errorNYI(expr->getSourceRange(),
+                 std::string("unimplemented X86 builtin call: ") +
+                     getContext().BuiltinInfo.getName(builtinID));
+    return {};
   case X86::BI__builtin_ia32_reduce_fadd_pd512:
   case X86::BI__builtin_ia32_reduce_fadd_ps512:
   case X86::BI__builtin_ia32_reduce_fadd_ph512:
   case X86::BI__builtin_ia32_reduce_fadd_ph256:
-  case X86::BI__builtin_ia32_reduce_fadd_ph128:
+  case X86::BI__builtin_ia32_reduce_fadd_ph128: {
+    StringRef intrinsicName = "";
+    switch (builtinID) {
+    case X86::BI__builtin_ia32_reduce_fadd_pd512:
+      intrinsicName = "vector.reduce.fadd.v8f64";
+      break;
+    case X86::BI__builtin_ia32_reduce_fadd_ps512:
+      intrinsicName = "vector.reduce.fadd.v16f32";
+      break;
+    case X86::BI__builtin_ia32_reduce_fadd_ph512:
+      intrinsicName = "vector.reduce.fadd.v32f16";
+      break;
+    case X86::BI__builtin_ia32_reduce_fadd_ph256:
+      intrinsicName = "vector.reduce.fadd.v16f16";
+      break;
+    case X86::BI__builtin_ia32_reduce_fadd_ph128:
+      intrinsicName = "vector.reduce.fadd.v8f16";
+      break;
+    }
----------------
andykaylor wrote:

Is this necessary? These are all the same except for the type suffix. Can you 
try generating the intrinsic call without the suffix and see if that works? I 
think the suffix will get appended automatically when the call is translated to 
LLVM IR if you omit it.

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

Reply via email to