[clang] [llvm] [X86][AVX10.2] Support AVX10.2-BF16 new instructions. (PR #101603)

via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 1 19:31:46 PDT 2024


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff 6867324eeec7c4f297c2f787d9c7b4d751a384c7 f89b7467095f9e522252de278ece4acb2796d105 --extensions c,cpp,h,inc -- clang/lib/Headers/avx10_2_512bf16intrin.h clang/lib/Headers/avx10_2_512niintrin.h clang/lib/Headers/avx10_2bf16intrin.h clang/lib/Headers/avx10_2niintrin.h clang/test/CodeGen/X86/avx10_2_512bf16-builtins.c clang/test/CodeGen/X86/avx10_2_512ni-builtins.c clang/test/CodeGen/X86/avx10_2bf16-builtins.c clang/test/CodeGen/X86/avx10_2ni-builtins.c clang/lib/Basic/Targets/X86.cpp clang/lib/Basic/Targets/X86.h clang/lib/CodeGen/CGBuiltin.cpp clang/lib/Driver/ToolChains/Arch/X86.cpp clang/lib/Headers/immintrin.h clang/lib/Sema/SemaX86.cpp clang/test/CodeGen/attr-target-x86.c clang/test/Driver/x86-target-features.c clang/test/Preprocessor/x86_target_features.c llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp llvm/lib/Target/X86/X86ISelLowering.cpp llvm/lib/Target/X86/X86ISelLowering.h llvm/lib/Target/X86/X86IntrinsicsInfo.h llvm/lib/TargetParser/Host.cpp llvm/lib/TargetParser/X86TargetParser.cpp llvm/test/TableGen/x86-fold-tables.inc llvm/utils/TableGen/X86DisassemblerTables.cpp llvm/utils/TableGen/X86RecognizableInstr.cpp llvm/utils/TableGen/X86RecognizableInstr.h
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index aa2a9d17f0..3994f21c60 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -3305,61 +3305,62 @@ bool X86AsmParser::ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
   if ((PatchedName.starts_with("cmp") || PatchedName.starts_with("vcmp")) &&
       (PatchedName.ends_with("ss") || PatchedName.ends_with("sd") ||
        PatchedName.ends_with("sh") || PatchedName.ends_with("ph") ||
-       PatchedName.ends_with("pbf16") ||
-       PatchedName.ends_with("ps") || PatchedName.ends_with("pd"))) {
+       PatchedName.ends_with("pbf16") || PatchedName.ends_with("ps") ||
+       PatchedName.ends_with("pd"))) {
     bool IsVCMP = PatchedName[0] == 'v';
     unsigned CCIdx = IsVCMP ? 4 : 3;
     unsigned suffixLength = PatchedName.ends_with("pbf16") ? 5 : 2;
-    unsigned CC = StringSwitch<unsigned>(
-      PatchedName.slice(CCIdx, PatchedName.size() - suffixLength))
-      .Case("eq",       0x00)
-      .Case("eq_oq",    0x00)
-      .Case("lt",       0x01)
-      .Case("lt_os",    0x01)
-      .Case("le",       0x02)
-      .Case("le_os",    0x02)
-      .Case("unord",    0x03)
-      .Case("unord_q",  0x03)
-      .Case("neq",      0x04)
-      .Case("neq_uq",   0x04)
-      .Case("nlt",      0x05)
-      .Case("nlt_us",   0x05)
-      .Case("nle",      0x06)
-      .Case("nle_us",   0x06)
-      .Case("ord",      0x07)
-      .Case("ord_q",    0x07)
-      /* AVX only from here */
-      .Case("eq_uq",    0x08)
-      .Case("nge",      0x09)
-      .Case("nge_us",   0x09)
-      .Case("ngt",      0x0A)
-      .Case("ngt_us",   0x0A)
-      .Case("false",    0x0B)
-      .Case("false_oq", 0x0B)
-      .Case("neq_oq",   0x0C)
-      .Case("ge",       0x0D)
-      .Case("ge_os",    0x0D)
-      .Case("gt",       0x0E)
-      .Case("gt_os",    0x0E)
-      .Case("true",     0x0F)
-      .Case("true_uq",  0x0F)
-      .Case("eq_os",    0x10)
-      .Case("lt_oq",    0x11)
-      .Case("le_oq",    0x12)
-      .Case("unord_s",  0x13)
-      .Case("neq_us",   0x14)
-      .Case("nlt_uq",   0x15)
-      .Case("nle_uq",   0x16)
-      .Case("ord_s",    0x17)
-      .Case("eq_us",    0x18)
-      .Case("nge_uq",   0x19)
-      .Case("ngt_uq",   0x1A)
-      .Case("false_os", 0x1B)
-      .Case("neq_os",   0x1C)
-      .Case("ge_oq",    0x1D)
-      .Case("gt_oq",    0x1E)
-      .Case("true_us",  0x1F)
-      .Default(~0U);
+    unsigned CC =
+        StringSwitch<unsigned>(
+            PatchedName.slice(CCIdx, PatchedName.size() - suffixLength))
+            .Case("eq", 0x00)
+            .Case("eq_oq", 0x00)
+            .Case("lt", 0x01)
+            .Case("lt_os", 0x01)
+            .Case("le", 0x02)
+            .Case("le_os", 0x02)
+            .Case("unord", 0x03)
+            .Case("unord_q", 0x03)
+            .Case("neq", 0x04)
+            .Case("neq_uq", 0x04)
+            .Case("nlt", 0x05)
+            .Case("nlt_us", 0x05)
+            .Case("nle", 0x06)
+            .Case("nle_us", 0x06)
+            .Case("ord", 0x07)
+            .Case("ord_q", 0x07)
+            /* AVX only from here */
+            .Case("eq_uq", 0x08)
+            .Case("nge", 0x09)
+            .Case("nge_us", 0x09)
+            .Case("ngt", 0x0A)
+            .Case("ngt_us", 0x0A)
+            .Case("false", 0x0B)
+            .Case("false_oq", 0x0B)
+            .Case("neq_oq", 0x0C)
+            .Case("ge", 0x0D)
+            .Case("ge_os", 0x0D)
+            .Case("gt", 0x0E)
+            .Case("gt_os", 0x0E)
+            .Case("true", 0x0F)
+            .Case("true_uq", 0x0F)
+            .Case("eq_os", 0x10)
+            .Case("lt_oq", 0x11)
+            .Case("le_oq", 0x12)
+            .Case("unord_s", 0x13)
+            .Case("neq_us", 0x14)
+            .Case("nlt_uq", 0x15)
+            .Case("nle_uq", 0x16)
+            .Case("ord_s", 0x17)
+            .Case("eq_us", 0x18)
+            .Case("nge_uq", 0x19)
+            .Case("ngt_uq", 0x1A)
+            .Case("false_os", 0x1B)
+            .Case("neq_os", 0x1C)
+            .Case("ge_oq", 0x1D)
+            .Case("gt_oq", 0x1E)
+            .Case("true_us", 0x1F)
+            .Default(~0U);
     if (CC != ~0U && (IsVCMP || CC < 8) &&
         (IsVCMP || PatchedName.back() != 'h')) {
       if (PatchedName.ends_with("ss"))
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp
index 8fcc1c10d9..624e53cf4b 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp
@@ -167,15 +167,24 @@ bool X86ATTInstPrinter::printVecCompareInstr(const MCInst *MI,
   case X86::VCMPPHZrmbi:     case X86::VCMPPHZrmbik:
   case X86::VCMPPHZrrib:     case X86::VCMPPHZrribk:
   case X86::VCMPSHZrrib_Int: case X86::VCMPSHZrrib_Intk:
-  case X86::VCMPPBF16Z128rmi:  case X86::VCMPPBF16Z128rri:
-  case X86::VCMPPBF16Z256rmi:  case X86::VCMPPBF16Z256rri:
-  case X86::VCMPPBF16Zrmi:     case X86::VCMPPBF16Zrri:
-  case X86::VCMPPBF16Z128rmik: case X86::VCMPPBF16Z128rrik:
-  case X86::VCMPPBF16Z256rmik: case X86::VCMPPBF16Z256rrik:
-  case X86::VCMPPBF16Zrmik:    case X86::VCMPPBF16Zrrik:
-  case X86::VCMPPBF16Z128rmbi: case X86::VCMPPBF16Z128rmbik:
-  case X86::VCMPPBF16Z256rmbi: case X86::VCMPPBF16Z256rmbik:
-  case X86::VCMPPBF16Zrmbi:    case X86::VCMPPBF16Zrmbik:
+  case X86::VCMPPBF16Z128rmi:
+  case X86::VCMPPBF16Z128rri:
+  case X86::VCMPPBF16Z256rmi:
+  case X86::VCMPPBF16Z256rri:
+  case X86::VCMPPBF16Zrmi:
+  case X86::VCMPPBF16Zrri:
+  case X86::VCMPPBF16Z128rmik:
+  case X86::VCMPPBF16Z128rrik:
+  case X86::VCMPPBF16Z256rmik:
+  case X86::VCMPPBF16Z256rrik:
+  case X86::VCMPPBF16Zrmik:
+  case X86::VCMPPBF16Zrrik:
+  case X86::VCMPPBF16Z128rmbi:
+  case X86::VCMPPBF16Z128rmbik:
+  case X86::VCMPPBF16Z256rmbi:
+  case X86::VCMPPBF16Z256rmbik:
+  case X86::VCMPPBF16Zrmbi:
+  case X86::VCMPPBF16Zrmbik:
     if (Imm >= 0 && Imm <= 31) {
       OS << '\t';
       printCMPMnemonic(MI, /*IsVCMP*/true, OS);
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
index 2f26ff3a62..aca1bd1823 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
@@ -310,15 +310,24 @@ void X86InstPrinterCommon::printCMPMnemonic(const MCInst *MI, bool IsVCmp,
   case X86::VCMPSHZrmi_Intk: case X86::VCMPSHZrri_Intk:
     OS << "sh\t";
     break;
-  case X86::VCMPPBF16Z128rmi:  case X86::VCMPPBF16Z128rri:
-  case X86::VCMPPBF16Z256rmi:  case X86::VCMPPBF16Z256rri:
-  case X86::VCMPPBF16Zrmi:     case X86::VCMPPBF16Zrri:
-  case X86::VCMPPBF16Z128rmik: case X86::VCMPPBF16Z128rrik:
-  case X86::VCMPPBF16Z256rmik: case X86::VCMPPBF16Z256rrik:
-  case X86::VCMPPBF16Zrmik:    case X86::VCMPPBF16Zrrik:
-  case X86::VCMPPBF16Z128rmbi: case X86::VCMPPBF16Z128rmbik:
-  case X86::VCMPPBF16Z256rmbi: case X86::VCMPPBF16Z256rmbik:
-  case X86::VCMPPBF16Zrmbi:    case X86::VCMPPBF16Zrmbik:
+  case X86::VCMPPBF16Z128rmi:
+  case X86::VCMPPBF16Z128rri:
+  case X86::VCMPPBF16Z256rmi:
+  case X86::VCMPPBF16Z256rri:
+  case X86::VCMPPBF16Zrmi:
+  case X86::VCMPPBF16Zrri:
+  case X86::VCMPPBF16Z128rmik:
+  case X86::VCMPPBF16Z128rrik:
+  case X86::VCMPPBF16Z256rmik:
+  case X86::VCMPPBF16Z256rrik:
+  case X86::VCMPPBF16Zrmik:
+  case X86::VCMPPBF16Zrrik:
+  case X86::VCMPPBF16Z128rmbi:
+  case X86::VCMPPBF16Z128rmbik:
+  case X86::VCMPPBF16Z256rmbi:
+  case X86::VCMPPBF16Z256rmbik:
+  case X86::VCMPPBF16Zrmbi:
+  case X86::VCMPPBF16Zrmbik:
     OS << "pbf16\t";
     break;
   }
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp
index 39600ffcad..399660e3e5 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp
@@ -146,15 +146,24 @@ bool X86IntelInstPrinter::printVecCompareInstr(const MCInst *MI, raw_ostream &OS
   case X86::VCMPPHZrmbi:     case X86::VCMPPHZrmbik:
   case X86::VCMPPHZrrib:     case X86::VCMPPHZrribk:
   case X86::VCMPSHZrrib_Int: case X86::VCMPSHZrrib_Intk:
-  case X86::VCMPPBF16Z128rmi:  case X86::VCMPPBF16Z128rri:
-  case X86::VCMPPBF16Z256rmi:  case X86::VCMPPBF16Z256rri:
-  case X86::VCMPPBF16Zrmi:     case X86::VCMPPBF16Zrri:
-  case X86::VCMPPBF16Z128rmik: case X86::VCMPPBF16Z128rrik:
-  case X86::VCMPPBF16Z256rmik: case X86::VCMPPBF16Z256rrik:
-  case X86::VCMPPBF16Zrmik:    case X86::VCMPPBF16Zrrik:
-  case X86::VCMPPBF16Z128rmbi: case X86::VCMPPBF16Z128rmbik:
-  case X86::VCMPPBF16Z256rmbi: case X86::VCMPPBF16Z256rmbik:
-  case X86::VCMPPBF16Zrmbi:    case X86::VCMPPBF16Zrmbik:
+  case X86::VCMPPBF16Z128rmi:
+  case X86::VCMPPBF16Z128rri:
+  case X86::VCMPPBF16Z256rmi:
+  case X86::VCMPPBF16Z256rri:
+  case X86::VCMPPBF16Zrmi:
+  case X86::VCMPPBF16Zrri:
+  case X86::VCMPPBF16Z128rmik:
+  case X86::VCMPPBF16Z128rrik:
+  case X86::VCMPPBF16Z256rmik:
+  case X86::VCMPPBF16Z256rrik:
+  case X86::VCMPPBF16Zrmik:
+  case X86::VCMPPBF16Zrrik:
+  case X86::VCMPPBF16Z128rmbi:
+  case X86::VCMPPBF16Z128rmbik:
+  case X86::VCMPPBF16Z256rmbi:
+  case X86::VCMPPBF16Z256rmbik:
+  case X86::VCMPPBF16Zrmbi:
+  case X86::VCMPPBF16Zrmbik:
     if (Imm >= 0 && Imm <= 31) {
       OS << '\t';
       printCMPMnemonic(MI, /*IsVCMP*/true, OS);
diff --git a/llvm/lib/Target/X86/X86IntrinsicsInfo.h b/llvm/lib/Target/X86/X86IntrinsicsInfo.h
index 281ea1f44f..f49a55bf52 100644
--- a/llvm/lib/Target/X86/X86IntrinsicsInfo.h
+++ b/llvm/lib/Target/X86/X86IntrinsicsInfo.h
@@ -388,30 +388,54 @@ static const IntrinsicData IntrinsicsWithoutChain[] = {
     X86_INTRINSIC_DATA(avx_vpermilvar_ps, INTR_TYPE_2OP, X86ISD::VPERMILPV, 0),
     X86_INTRINSIC_DATA(avx_vpermilvar_ps_256, INTR_TYPE_2OP, X86ISD::VPERMILPV,
                        0),
-    X86_INTRINSIC_DATA(avx10_fpclass_nepbf16_128, INTR_TYPE_2OP, X86ISD::VFPCLASS, 0),
-    X86_INTRINSIC_DATA(avx10_fpclass_nepbf16_256, INTR_TYPE_2OP, X86ISD::VFPCLASS, 0),
-    X86_INTRINSIC_DATA(avx10_fpclass_nepbf16_512, INTR_TYPE_2OP, X86ISD::VFPCLASS, 0),
-    X86_INTRINSIC_DATA(avx10_mask_getexp_nepbf16_128, INTR_TYPE_1OP_MASK, X86ISD::FGETEXP, 0),
-    X86_INTRINSIC_DATA(avx10_mask_getexp_nepbf16_256, INTR_TYPE_1OP_MASK, X86ISD::FGETEXP, 0),
-    X86_INTRINSIC_DATA(avx10_mask_getexp_nepbf16_512, INTR_TYPE_1OP_MASK, X86ISD::FGETEXP, 0),
-    X86_INTRINSIC_DATA(avx10_mask_getmant_nepbf16_128, INTR_TYPE_2OP_MASK, X86ISD::VGETMANT, 0),
-    X86_INTRINSIC_DATA(avx10_mask_getmant_nepbf16_256, INTR_TYPE_2OP_MASK, X86ISD::VGETMANT, 0),
-    X86_INTRINSIC_DATA(avx10_mask_getmant_nepbf16_512, INTR_TYPE_2OP_MASK, X86ISD::VGETMANT, 0),
-    X86_INTRINSIC_DATA(avx10_mask_rcp_nepbf16_128, INTR_TYPE_1OP_MASK, X86ISD::RCP14, 0),
-    X86_INTRINSIC_DATA(avx10_mask_rcp_nepbf16_256, INTR_TYPE_1OP_MASK, X86ISD::RCP14, 0),
-    X86_INTRINSIC_DATA(avx10_mask_rcp_nepbf16_512, INTR_TYPE_1OP_MASK, X86ISD::RCP14, 0),
-    X86_INTRINSIC_DATA(avx10_mask_reduce_nepbf16_128, INTR_TYPE_2OP_MASK, X86ISD::VREDUCE, 0),
-    X86_INTRINSIC_DATA(avx10_mask_reduce_nepbf16_256, INTR_TYPE_2OP_MASK, X86ISD::VREDUCE, 0),
-    X86_INTRINSIC_DATA(avx10_mask_reduce_nepbf16_512, INTR_TYPE_2OP_MASK, X86ISD::VREDUCE, 0),
-    X86_INTRINSIC_DATA(avx10_mask_rndscale_nepbf16_128, INTR_TYPE_2OP_MASK, X86ISD::VRNDSCALE, 0),
-    X86_INTRINSIC_DATA(avx10_mask_rndscale_nepbf16_256, INTR_TYPE_2OP_MASK, X86ISD::VRNDSCALE, 0),
-    X86_INTRINSIC_DATA(avx10_mask_rndscale_nepbf16_512, INTR_TYPE_2OP_MASK, X86ISD::VRNDSCALE, 0),
-    X86_INTRINSIC_DATA(avx10_mask_rsqrt_nepbf16_128, INTR_TYPE_1OP_MASK, X86ISD::RSQRT14, 0),
-    X86_INTRINSIC_DATA(avx10_mask_rsqrt_nepbf16_256, INTR_TYPE_1OP_MASK, X86ISD::RSQRT14, 0),
-    X86_INTRINSIC_DATA(avx10_mask_rsqrt_nepbf16_512, INTR_TYPE_1OP_MASK, X86ISD::RSQRT14, 0),
-    X86_INTRINSIC_DATA(avx10_mask_scalef_nepbf16_128, INTR_TYPE_2OP_MASK, X86ISD::SCALEF, 0),
-    X86_INTRINSIC_DATA(avx10_mask_scalef_nepbf16_256, INTR_TYPE_2OP_MASK, X86ISD::SCALEF, 0),
-    X86_INTRINSIC_DATA(avx10_mask_scalef_nepbf16_512, INTR_TYPE_2OP_MASK, X86ISD::SCALEF, 0),
+    X86_INTRINSIC_DATA(avx10_fpclass_nepbf16_128, INTR_TYPE_2OP,
+                       X86ISD::VFPCLASS, 0),
+    X86_INTRINSIC_DATA(avx10_fpclass_nepbf16_256, INTR_TYPE_2OP,
+                       X86ISD::VFPCLASS, 0),
+    X86_INTRINSIC_DATA(avx10_fpclass_nepbf16_512, INTR_TYPE_2OP,
+                       X86ISD::VFPCLASS, 0),
+    X86_INTRINSIC_DATA(avx10_mask_getexp_nepbf16_128, INTR_TYPE_1OP_MASK,
+                       X86ISD::FGETEXP, 0),
+    X86_INTRINSIC_DATA(avx10_mask_getexp_nepbf16_256, INTR_TYPE_1OP_MASK,
+                       X86ISD::FGETEXP, 0),
+    X86_INTRINSIC_DATA(avx10_mask_getexp_nepbf16_512, INTR_TYPE_1OP_MASK,
+                       X86ISD::FGETEXP, 0),
+    X86_INTRINSIC_DATA(avx10_mask_getmant_nepbf16_128, INTR_TYPE_2OP_MASK,
+                       X86ISD::VGETMANT, 0),
+    X86_INTRINSIC_DATA(avx10_mask_getmant_nepbf16_256, INTR_TYPE_2OP_MASK,
+                       X86ISD::VGETMANT, 0),
+    X86_INTRINSIC_DATA(avx10_mask_getmant_nepbf16_512, INTR_TYPE_2OP_MASK,
+                       X86ISD::VGETMANT, 0),
+    X86_INTRINSIC_DATA(avx10_mask_rcp_nepbf16_128, INTR_TYPE_1OP_MASK,
+                       X86ISD::RCP14, 0),
+    X86_INTRINSIC_DATA(avx10_mask_rcp_nepbf16_256, INTR_TYPE_1OP_MASK,
+                       X86ISD::RCP14, 0),
+    X86_INTRINSIC_DATA(avx10_mask_rcp_nepbf16_512, INTR_TYPE_1OP_MASK,
+                       X86ISD::RCP14, 0),
+    X86_INTRINSIC_DATA(avx10_mask_reduce_nepbf16_128, INTR_TYPE_2OP_MASK,
+                       X86ISD::VREDUCE, 0),
+    X86_INTRINSIC_DATA(avx10_mask_reduce_nepbf16_256, INTR_TYPE_2OP_MASK,
+                       X86ISD::VREDUCE, 0),
+    X86_INTRINSIC_DATA(avx10_mask_reduce_nepbf16_512, INTR_TYPE_2OP_MASK,
+                       X86ISD::VREDUCE, 0),
+    X86_INTRINSIC_DATA(avx10_mask_rndscale_nepbf16_128, INTR_TYPE_2OP_MASK,
+                       X86ISD::VRNDSCALE, 0),
+    X86_INTRINSIC_DATA(avx10_mask_rndscale_nepbf16_256, INTR_TYPE_2OP_MASK,
+                       X86ISD::VRNDSCALE, 0),
+    X86_INTRINSIC_DATA(avx10_mask_rndscale_nepbf16_512, INTR_TYPE_2OP_MASK,
+                       X86ISD::VRNDSCALE, 0),
+    X86_INTRINSIC_DATA(avx10_mask_rsqrt_nepbf16_128, INTR_TYPE_1OP_MASK,
+                       X86ISD::RSQRT14, 0),
+    X86_INTRINSIC_DATA(avx10_mask_rsqrt_nepbf16_256, INTR_TYPE_1OP_MASK,
+                       X86ISD::RSQRT14, 0),
+    X86_INTRINSIC_DATA(avx10_mask_rsqrt_nepbf16_512, INTR_TYPE_1OP_MASK,
+                       X86ISD::RSQRT14, 0),
+    X86_INTRINSIC_DATA(avx10_mask_scalef_nepbf16_128, INTR_TYPE_2OP_MASK,
+                       X86ISD::SCALEF, 0),
+    X86_INTRINSIC_DATA(avx10_mask_scalef_nepbf16_256, INTR_TYPE_2OP_MASK,
+                       X86ISD::SCALEF, 0),
+    X86_INTRINSIC_DATA(avx10_mask_scalef_nepbf16_512, INTR_TYPE_2OP_MASK,
+                       X86ISD::SCALEF, 0),
     X86_INTRINSIC_DATA(avx10_vaddpd256, INTR_TYPE_2OP, ISD::FADD,
                        X86ISD::FADD_RND),
     X86_INTRINSIC_DATA(avx10_vaddph256, INTR_TYPE_2OP, ISD::FADD,

``````````

</details>


https://github.com/llvm/llvm-project/pull/101603


More information about the llvm-commits mailing list