@@ -368,7 +368,7 @@ multiclass vinsert_for_size_split<int Opcode, X86VectorVTInfo From,
368
368
SDPatternOperator vinsert_for_mask,
369
369
X86FoldableSchedWrite sched> {
370
370
let hasSideEffects = 0, ExeDomain = To.ExeDomain in {
371
- defm rr : AVX512_maskable_split<Opcode, MRMSrcReg, To, (outs To.RC:$dst),
371
+ defm rri : AVX512_maskable_split<Opcode, MRMSrcReg, To, (outs To.RC:$dst),
372
372
(ins To.RC:$src1, From.RC:$src2, u8imm:$src3),
373
373
"vinsert" # From.EltTypeName # "x" # From.NumElts,
374
374
"$src3, $src2, $src1", "$src1, $src2, $src3",
@@ -380,7 +380,7 @@ multiclass vinsert_for_size_split<int Opcode, X86VectorVTInfo From,
380
380
(iPTR imm))>,
381
381
AVX512AIi8Base, EVEX, VVVV, Sched<[sched]>;
382
382
let mayLoad = 1 in
383
- defm rm : AVX512_maskable_split<Opcode, MRMSrcMem, To, (outs To.RC:$dst),
383
+ defm rmi : AVX512_maskable_split<Opcode, MRMSrcMem, To, (outs To.RC:$dst),
384
384
(ins To.RC:$src1, From.MemOp:$src2, u8imm:$src3),
385
385
"vinsert" # From.EltTypeName # "x" # From.NumElts,
386
386
"$src3, $src2, $src1", "$src1, $src2, $src3",
@@ -408,15 +408,15 @@ multiclass vinsert_for_size_lowering<string InstrStr, X86VectorVTInfo From,
408
408
let Predicates = p in {
409
409
def : Pat<(vinsert_insert:$ins
410
410
(To.VT To.RC:$src1), (From.VT From.RC:$src2), (iPTR imm)),
411
- (To.VT (!cast<Instruction>(InstrStr#"rr ")
411
+ (To.VT (!cast<Instruction>(InstrStr#"rri ")
412
412
To.RC:$src1, From.RC:$src2,
413
413
(INSERT_get_vinsert_imm To.RC:$ins)))>;
414
414
415
415
def : Pat<(vinsert_insert:$ins
416
416
(To.VT To.RC:$src1),
417
417
(From.VT (From.LdFrag addr:$src2)),
418
418
(iPTR imm)),
419
- (To.VT (!cast<Instruction>(InstrStr#"rm ")
419
+ (To.VT (!cast<Instruction>(InstrStr#"rmi ")
420
420
To.RC:$src1, addr:$src2,
421
421
(INSERT_get_vinsert_imm To.RC:$ins)))>;
422
422
}
@@ -529,7 +529,7 @@ let Predicates = p in {
529
529
(From.VT From.RC:$src2),
530
530
(iPTR imm))),
531
531
Cast.RC:$src0)),
532
- (!cast<Instruction>(InstrStr#"rrk ")
532
+ (!cast<Instruction>(InstrStr#"rrik ")
533
533
Cast.RC:$src0, Cast.KRCWM:$mask, To.RC:$src1, From.RC:$src2,
534
534
(INSERT_get_vinsert_imm To.RC:$ins))>;
535
535
def : Pat<(Cast.VT
@@ -541,7 +541,7 @@ let Predicates = p in {
541
541
(From.LdFrag addr:$src2))),
542
542
(iPTR imm))),
543
543
Cast.RC:$src0)),
544
- (!cast<Instruction>(InstrStr#"rmk ")
544
+ (!cast<Instruction>(InstrStr#"rmik ")
545
545
Cast.RC:$src0, Cast.KRCWM:$mask, To.RC:$src1, addr:$src2,
546
546
(INSERT_get_vinsert_imm To.RC:$ins))>;
547
547
@@ -552,7 +552,7 @@ let Predicates = p in {
552
552
(From.VT From.RC:$src2),
553
553
(iPTR imm))),
554
554
Cast.ImmAllZerosV)),
555
- (!cast<Instruction>(InstrStr#"rrkz ")
555
+ (!cast<Instruction>(InstrStr#"rrikz ")
556
556
Cast.KRCWM:$mask, To.RC:$src1, From.RC:$src2,
557
557
(INSERT_get_vinsert_imm To.RC:$ins))>;
558
558
def : Pat<(Cast.VT
@@ -562,7 +562,7 @@ let Predicates = p in {
562
562
(From.VT (From.LdFrag addr:$src2)),
563
563
(iPTR imm))),
564
564
Cast.ImmAllZerosV)),
565
- (!cast<Instruction>(InstrStr#"rmkz ")
565
+ (!cast<Instruction>(InstrStr#"rmikz ")
566
566
Cast.KRCWM:$mask, To.RC:$src1, addr:$src2,
567
567
(INSERT_get_vinsert_imm To.RC:$ins))>;
568
568
}
@@ -677,15 +677,15 @@ multiclass vextract_for_size_split<int Opcode,
677
677
SchedWrite SchedRR, SchedWrite SchedMR> {
678
678
679
679
let hasSideEffects = 0, ExeDomain = To.ExeDomain in {
680
- defm rr : AVX512_maskable_split<Opcode, MRMDestReg, To, (outs To.RC:$dst),
680
+ defm rri : AVX512_maskable_split<Opcode, MRMDestReg, To, (outs To.RC:$dst),
681
681
(ins From.RC:$src1, u8imm:$idx),
682
682
"vextract" # To.EltTypeName # "x" # To.NumElts,
683
683
"$idx, $src1", "$src1, $idx",
684
684
(vextract_extract:$idx (From.VT From.RC:$src1), (iPTR imm)),
685
685
(vextract_for_mask:$idx (From.VT From.RC:$src1), (iPTR imm))>,
686
686
AVX512AIi8Base, EVEX, Sched<[SchedRR]>;
687
687
688
- def mr : AVX512AIi8<Opcode, MRMDestMem, (outs),
688
+ def mri : AVX512AIi8<Opcode, MRMDestMem, (outs),
689
689
(ins To.MemOp:$dst, From.RC:$src1, u8imm:$idx),
690
690
"vextract" # To.EltTypeName # "x" # To.NumElts #
691
691
"\t{$idx, $src1, $dst|$dst, $src1, $idx}",
@@ -695,7 +695,7 @@ multiclass vextract_for_size_split<int Opcode,
695
695
Sched<[SchedMR]>;
696
696
697
697
let mayStore = 1, hasSideEffects = 0 in
698
- def mrk : AVX512AIi8<Opcode, MRMDestMem, (outs),
698
+ def mrik : AVX512AIi8<Opcode, MRMDestMem, (outs),
699
699
(ins To.MemOp:$dst, To.KRCWM:$mask,
700
700
From.RC:$src1, u8imm:$idx),
701
701
"vextract" # To.EltTypeName # "x" # To.NumElts #
@@ -718,12 +718,12 @@ multiclass vextract_for_size_lowering<string InstrStr, X86VectorVTInfo From,
718
718
SDNodeXForm EXTRACT_get_vextract_imm, list<Predicate> p> {
719
719
let Predicates = p in {
720
720
def : Pat<(vextract_extract:$ext (From.VT From.RC:$src1), (iPTR imm)),
721
- (To.VT (!cast<Instruction>(InstrStr#"rr ")
721
+ (To.VT (!cast<Instruction>(InstrStr#"rri ")
722
722
From.RC:$src1,
723
723
(EXTRACT_get_vextract_imm To.RC:$ext)))>;
724
724
def : Pat<(store (To.VT (vextract_extract:$ext (From.VT From.RC:$src1),
725
725
(iPTR imm))), addr:$dst),
726
- (!cast<Instruction>(InstrStr#"mr ") addr:$dst, From.RC:$src1,
726
+ (!cast<Instruction>(InstrStr#"mri ") addr:$dst, From.RC:$src1,
727
727
(EXTRACT_get_vextract_imm To.RC:$ext))>;
728
728
}
729
729
}
@@ -828,31 +828,31 @@ defm : vextract_for_size_lowering<"VEXTRACTF64x4Z", v32bf16_info, v16bf16x_info,
828
828
// smaller extract to enable EVEX->VEX.
829
829
let Predicates = [NoVLX, HasEVEX512] in {
830
830
def : Pat<(v2i64 (extract_subvector (v8i64 VR512:$src), (iPTR 2))),
831
- (v2i64 (VEXTRACTI128rr
831
+ (v2i64 (VEXTRACTI128rri
832
832
(v4i64 (EXTRACT_SUBREG (v8i64 VR512:$src), sub_ymm)),
833
833
(iPTR 1)))>;
834
834
def : Pat<(v2f64 (extract_subvector (v8f64 VR512:$src), (iPTR 2))),
835
- (v2f64 (VEXTRACTF128rr
835
+ (v2f64 (VEXTRACTF128rri
836
836
(v4f64 (EXTRACT_SUBREG (v8f64 VR512:$src), sub_ymm)),
837
837
(iPTR 1)))>;
838
838
def : Pat<(v4i32 (extract_subvector (v16i32 VR512:$src), (iPTR 4))),
839
- (v4i32 (VEXTRACTI128rr
839
+ (v4i32 (VEXTRACTI128rri
840
840
(v8i32 (EXTRACT_SUBREG (v16i32 VR512:$src), sub_ymm)),
841
841
(iPTR 1)))>;
842
842
def : Pat<(v4f32 (extract_subvector (v16f32 VR512:$src), (iPTR 4))),
843
- (v4f32 (VEXTRACTF128rr
843
+ (v4f32 (VEXTRACTF128rri
844
844
(v8f32 (EXTRACT_SUBREG (v16f32 VR512:$src), sub_ymm)),
845
845
(iPTR 1)))>;
846
846
def : Pat<(v8i16 (extract_subvector (v32i16 VR512:$src), (iPTR 8))),
847
- (v8i16 (VEXTRACTI128rr
847
+ (v8i16 (VEXTRACTI128rri
848
848
(v16i16 (EXTRACT_SUBREG (v32i16 VR512:$src), sub_ymm)),
849
849
(iPTR 1)))>;
850
850
def : Pat<(v8f16 (extract_subvector (v32f16 VR512:$src), (iPTR 8))),
851
- (v8f16 (VEXTRACTF128rr
851
+ (v8f16 (VEXTRACTF128rri
852
852
(v16f16 (EXTRACT_SUBREG (v32f16 VR512:$src), sub_ymm)),
853
853
(iPTR 1)))>;
854
854
def : Pat<(v16i8 (extract_subvector (v64i8 VR512:$src), (iPTR 16))),
855
- (v16i8 (VEXTRACTI128rr
855
+ (v16i8 (VEXTRACTI128rri
856
856
(v32i8 (EXTRACT_SUBREG (v64i8 VR512:$src), sub_ymm)),
857
857
(iPTR 1)))>;
858
858
}
@@ -861,31 +861,31 @@ def : Pat<(v16i8 (extract_subvector (v64i8 VR512:$src), (iPTR 16))),
861
861
// smaller extract to enable EVEX->VEX.
862
862
let Predicates = [HasVLX] in {
863
863
def : Pat<(v2i64 (extract_subvector (v8i64 VR512:$src), (iPTR 2))),
864
- (v2i64 (VEXTRACTI32x4Z256rr
864
+ (v2i64 (VEXTRACTI32x4Z256rri
865
865
(v4i64 (EXTRACT_SUBREG (v8i64 VR512:$src), sub_ymm)),
866
866
(iPTR 1)))>;
867
867
def : Pat<(v2f64 (extract_subvector (v8f64 VR512:$src), (iPTR 2))),
868
- (v2f64 (VEXTRACTF32x4Z256rr
868
+ (v2f64 (VEXTRACTF32x4Z256rri
869
869
(v4f64 (EXTRACT_SUBREG (v8f64 VR512:$src), sub_ymm)),
870
870
(iPTR 1)))>;
871
871
def : Pat<(v4i32 (extract_subvector (v16i32 VR512:$src), (iPTR 4))),
872
- (v4i32 (VEXTRACTI32x4Z256rr
872
+ (v4i32 (VEXTRACTI32x4Z256rri
873
873
(v8i32 (EXTRACT_SUBREG (v16i32 VR512:$src), sub_ymm)),
874
874
(iPTR 1)))>;
875
875
def : Pat<(v4f32 (extract_subvector (v16f32 VR512:$src), (iPTR 4))),
876
- (v4f32 (VEXTRACTF32x4Z256rr
876
+ (v4f32 (VEXTRACTF32x4Z256rri
877
877
(v8f32 (EXTRACT_SUBREG (v16f32 VR512:$src), sub_ymm)),
878
878
(iPTR 1)))>;
879
879
def : Pat<(v8i16 (extract_subvector (v32i16 VR512:$src), (iPTR 8))),
880
- (v8i16 (VEXTRACTI32x4Z256rr
880
+ (v8i16 (VEXTRACTI32x4Z256rri
881
881
(v16i16 (EXTRACT_SUBREG (v32i16 VR512:$src), sub_ymm)),
882
882
(iPTR 1)))>;
883
883
def : Pat<(v8f16 (extract_subvector (v32f16 VR512:$src), (iPTR 8))),
884
- (v8f16 (VEXTRACTF32x4Z256rr
884
+ (v8f16 (VEXTRACTF32x4Z256rri
885
885
(v16f16 (EXTRACT_SUBREG (v32f16 VR512:$src), sub_ymm)),
886
886
(iPTR 1)))>;
887
887
def : Pat<(v16i8 (extract_subvector (v64i8 VR512:$src), (iPTR 16))),
888
- (v16i8 (VEXTRACTI32x4Z256rr
888
+ (v16i8 (VEXTRACTI32x4Z256rri
889
889
(v32i8 (EXTRACT_SUBREG (v64i8 VR512:$src), sub_ymm)),
890
890
(iPTR 1)))>;
891
891
}
@@ -904,7 +904,7 @@ let Predicates = p in {
904
904
(To.VT (vextract_extract:$ext
905
905
(From.VT From.RC:$src), (iPTR imm)))),
906
906
To.RC:$src0)),
907
- (Cast.VT (!cast<Instruction>(InstrStr#"rrk ")
907
+ (Cast.VT (!cast<Instruction>(InstrStr#"rrik ")
908
908
Cast.RC:$src0, Cast.KRCWM:$mask, From.RC:$src,
909
909
(EXTRACT_get_vextract_imm To.RC:$ext)))>;
910
910
@@ -913,7 +913,7 @@ let Predicates = p in {
913
913
(To.VT (vextract_extract:$ext
914
914
(From.VT From.RC:$src), (iPTR imm)))),
915
915
Cast.ImmAllZerosV)),
916
- (Cast.VT (!cast<Instruction>(InstrStr#"rrkz ")
916
+ (Cast.VT (!cast<Instruction>(InstrStr#"rrikz ")
917
917
Cast.KRCWM:$mask, From.RC:$src,
918
918
(EXTRACT_get_vextract_imm To.RC:$ext)))>;
919
919
}
0 commit comments