@@ -403,28 +403,42 @@ multiclass avx10_minmax_scalar<string OpStr, X86VectorVTInfo _, SDNode OpNode,
403403 SDNode OpNodeSAE> {
404404 let ExeDomain = _.ExeDomain, Predicates = [HasAVX10_2] in {
405405 let mayRaiseFPException = 1 in {
406- defm rri : AVX512_maskable<0x53, MRMSrcReg, _, (outs VR128X:$dst),
407- (ins VR128X:$src1, VR128X:$src2, i32u8imm:$src3),
408- OpStr, "$src3, $src2, $src1", "$src1, $src2, $src3",
409- (_.VT (OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2),
410- (i32 timm:$src3)))>,
411- Sched<[WriteFMAX]>;
412-
413- defm rmi : AVX512_maskable<0x53, MRMSrcMem, _, (outs VR128X:$dst),
414- (ins VR128X:$src1, _.ScalarMemOp:$src2, i32u8imm:$src3),
415- OpStr, "$src3, $src2, $src1", "$src1, $src2, $src3",
416- (_.VT (OpNode (_.VT _.RC:$src1), (_.ScalarIntMemFrags addr:$src2),
417- (i32 timm:$src3)))>,
406+ let isCodeGenOnly = 1 in {
407+ def rri : AVX512Ii8<0x53, MRMSrcReg, (outs _.FRC:$dst),
408+ (ins _.FRC:$src1, _.FRC:$src2, i32u8imm:$src3),
409+ !strconcat(OpStr, "\t{$src3, $src2, $src1|$src1, $src2, $src3}"),
410+ [(set _.FRC:$dst, (OpNode _.FRC:$src1, _.FRC:$src2, (i32 timm:$src3)))]>,
411+ Sched<[WriteFMAX]>;
412+
413+ def rmi : AVX512Ii8<0x53, MRMSrcMem, (outs _.FRC:$dst),
414+ (ins _.FRC:$src1, _.ScalarMemOp:$src2, i32u8imm:$src3),
415+ !strconcat(OpStr, "\t{$src3, $src2, $src1|$src1, $src2, $src3}"),
416+ [(set _.FRC:$dst, (OpNode _.FRC:$src1, (_.ScalarLdFrag addr:$src2),
417+ (i32 timm:$src3)))]>,
418+ Sched<[WriteFMAX.Folded, WriteFMAX.ReadAfterFold]>;
419+ }
420+ defm rri_Int : AVX512_maskable<0x53, MRMSrcReg, _, (outs VR128X:$dst),
421+ (ins VR128X:$src1, VR128X:$src2, i32u8imm:$src3),
422+ OpStr, "$src3, $src2, $src1", "$src1, $src2, $src3",
423+ (_.VT (OpNode (_.VT _.RC:$src1), (_.VT _.RC:$src2),
424+ (i32 timm:$src3)))>,
425+ Sched<[WriteFMAX]>;
426+
427+ defm rmi_Int : AVX512_maskable<0x53, MRMSrcMem, _, (outs VR128X:$dst),
428+ (ins VR128X:$src1, _.ScalarMemOp:$src2, i32u8imm:$src3),
429+ OpStr, "$src3, $src2, $src1", "$src1, $src2, $src3",
430+ (_.VT (OpNode (_.VT _.RC:$src1), (_.ScalarIntMemFrags addr:$src2),
431+ (i32 timm:$src3)))>,
418432 Sched<[WriteFMAX.Folded, WriteFMAX.ReadAfterFold]>;
419433 }
420434 let Uses = []<Register>, mayRaiseFPException = 0 in
421- defm rrib : AVX512_maskable<0x53, MRMSrcReg, _, (outs VR128X:$dst),
422- (ins VR128X:$src1, VR128X:$src2, i32u8imm:$src3),
423- OpStr, "$src3, {sae}, $src2, $src1",
424- "$src1, $src2, {sae}, $src3",
425- (_.VT (OpNodeSAE (_.VT _.RC:$src1), (_.VT _.RC:$src2),
426- (i32 timm:$src3)))>,
427- Sched<[WriteFMAX]>, EVEX_B;
435+ defm rrib_Int : AVX512_maskable<0x53, MRMSrcReg, _, (outs VR128X:$dst),
436+ (ins VR128X:$src1, VR128X:$src2, i32u8imm:$src3),
437+ OpStr, "$src3, {sae}, $src2, $src1",
438+ "$src1, $src2, {sae}, $src3",
439+ (_.VT (OpNodeSAE (_.VT _.RC:$src1), (_.VT _.RC:$src2),
440+ (i32 timm:$src3)))>,
441+ Sched<[WriteFMAX]>, EVEX_B;
428442 }
429443}
430444
0 commit comments