================
@@ -417,3 +417,173 @@ defm VMINMAXSH : avx10_minmax_scalar<"vminmaxsh", 
v8f16x_info, X86vminmaxs, X86v
                  AVX512PSIi8Base, VEX_LIG, EVEX, VVVV, EVEX_CD8<16, CD8VT1>, 
TA;
 defm VMINMAXSS : avx10_minmax_scalar<"vminmaxss", v4f32x_info, X86vminmaxs, 
X86vminmaxsSae>,
                  AVX512AIi8Base, VEX_LIG, EVEX, VVVV, EVEX_CD8<32, CD8VT1>;
+
+//-------------------------------------------------
+// AVX10 SATCVT instructions
+//-------------------------------------------------
+
+multiclass avx10_sat_cvt_rmb<bits<8> Opc, string OpStr, X86FoldableSchedWrite 
sched,
+                              X86VectorVTInfo DestInfo,
+                              X86VectorVTInfo SrcInfo,
+                              SDNode MaskNode> {
+  defm rr: AVX512_maskable<Opc, MRMSrcReg, DestInfo, (outs DestInfo.RC:$dst),
+                         (ins SrcInfo.RC:$src), OpStr, "$src", "$src",
+                         (DestInfo.VT (MaskNode SrcInfo.RC:$src))>, 
Sched<[sched]>;
+  defm rm: AVX512_maskable<Opc, MRMSrcMem, DestInfo, (outs DestInfo.RC:$dst),
+                         (ins SrcInfo.MemOp:$src), OpStr, "$src", "$src",
+                         (DestInfo.VT (MaskNode (SrcInfo.VT
+                         (SrcInfo.LdFrag addr:$src))))>,
+                         Sched<[sched.Folded, sched.ReadAfterFold]>;
+  defm rmb: AVX512_maskable<Opc, MRMSrcMem, DestInfo, (outs DestInfo.RC:$dst),
+                         (ins SrcInfo.ScalarMemOp:$src), OpStr,
+                         "${src}"#SrcInfo.BroadcastStr, 
"${src}"#SrcInfo.BroadcastStr,
+                         (DestInfo.VT (MaskNode (SrcInfo.VT
+                         (SrcInfo.BroadcastLdFrag addr:$src))))>, EVEX_B,
+                         Sched<[sched.Folded, sched.ReadAfterFold]>;
+}
+
+// Conversion with rounding control (RC)
+multiclass avx10_sat_cvt_rc<bits<8> Opc, string OpStr, X86SchedWriteWidths 
sched,
+                             AVX512VLVectorVTInfo DestInfo, 
AVX512VLVectorVTInfo SrcInfo,
+                             SDNode MaskNode> {
+    let Uses = [MXCSR] in
----------------
phoebewang wrote:

let Predicates = [HasAVX10_2_512]

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

Reply via email to