@@ -59,6 +59,7 @@ def gi_cimm9 : GICustomOperandRenderer<"renderImm">;
59
59
def m1 : OperandWithDefaultOps <i32, (ops (i32 -1))>;
60
60
def Z : OperandWithDefaultOps <i32, (ops R0)>;
61
61
def m1Z : OperandWithDefaultOps <i32, (ops (i32 -1), R0)>;
62
+ def mb : OperandWithDefaultOps <i32, (ops (i32 0b1101))>;
62
63
63
64
def HasA : Predicate<"Subtarget->hasA()">;
64
65
def HasB : Predicate<"Subtarget->hasB()">;
@@ -297,7 +298,7 @@ def HasC : Predicate<"Subtarget->hasC()"> { let RecomputePerFunction = 1; }
297
298
// R19C-NEXT: GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
298
299
// R19C-NEXT: GIR_EraseFromParent, /*InsnID*/0,
299
300
// R19C-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
300
- // R19C-NEXT: // GIR_Coverage, 19 ,
301
+ // R19C-NEXT: // GIR_Coverage, 20 ,
301
302
// R19C-NEXT: GIR_Done,
302
303
// R19C-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
303
304
//
@@ -330,12 +331,12 @@ def : Pat<(select GPR32:$src1, (complex_rr GPR32:$src2a, GPR32:$src2b),
330
331
// R21O-NEXT: GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
331
332
// R21O-NEXT: GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
332
333
//
333
- // R21C-NEXT: GIM_Try, /*On fail goto*//*Label [[PREV_NUM:[0-9]+]]*/ GIMT_Encode4([[PREV:[0-9]+]]), // Rule ID 19 //
334
+ // R21C-NEXT: GIM_Try, /*On fail goto*//*Label [[PREV_NUM:[0-9]+]]*/ GIMT_Encode4([[PREV:[0-9]+]]), // Rule ID 20 //
334
335
// R21C-NOT: GIR_Done,
335
- // R21C: // GIR_Coverage, 19 ,
336
+ // R21C: // GIR_Coverage, 20 ,
336
337
// R21C-NEXT: GIR_Done,
337
338
// R21C-NEXT: // Label [[PREV_NUM]]: @[[PREV]]
338
- // R21C-NEXT: GIM_Try, /*On fail goto*//*Label [[LABEL_NUM:[0-9]+]]*/ GIMT_Encode4([[LABEL:[0-9]+]]), // Rule ID 21 //
339
+ // R21C-NEXT: GIM_Try, /*On fail goto*//*Label [[LABEL_NUM:[0-9]+]]*/ GIMT_Encode4([[LABEL:[0-9]+]]), // Rule ID 22 //
339
340
//
340
341
// R21O-NEXT: GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/GIMT_Encode2(MyTarget::GPR32RegClassID),
341
342
// R21O-NEXT: GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/GIMT_Encode2(MyTarget::GPR32RegClassID),
@@ -366,7 +367,7 @@ def : Pat<(select GPR32:$src1, (complex_rr GPR32:$src2a, GPR32:$src2b),
366
367
// R21C-NEXT: GIR_MergeMemOperands, /*InsnID*/0, /*NumInsns*/1, /*MergeInsnID's*/0
367
368
// R21C-NEXT: GIR_EraseFromParent, /*InsnID*/0,
368
369
// R21C-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
369
- // R21C-NEXT: // GIR_Coverage, 21 ,
370
+ // R21C-NEXT: // GIR_Coverage, 22 ,
370
371
// R21C-NEXT: GIR_Done,
371
372
// R21C-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
372
373
//
@@ -390,10 +391,10 @@ def : Pat<(select GPR32:$src1, (complex_rr GPR32:$src2a, GPR32:$src2b),
390
391
// R20O-NEXT: GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
391
392
// R20O-NEXT: GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/GIMT_Encode2(MyTarget::GPR32RegClassID),
392
393
//
393
- // R20N: GIM_Try, /*On fail goto*//*Label [[PREV_NUM:[0-9]+]]*/ GIMT_Encode4([[PREV:[0-9]+]]), // Rule ID 21 //
394
+ // R20N: GIM_Try, /*On fail goto*//*Label [[PREV_NUM:[0-9]+]]*/ GIMT_Encode4([[PREV:[0-9]+]]), // Rule ID 22 //
394
395
// R20N: // Label [[PREV_NUM]]: @[[PREV]]
395
396
//
396
- // R20C-NEXT: GIM_Try, /*On fail goto*//*Label [[LABEL_NUM:[0-9]+]]*/ GIMT_Encode4([[LABEL:[0-9]+]]), // Rule ID 20 //
397
+ // R20C-NEXT: GIM_Try, /*On fail goto*//*Label [[LABEL_NUM:[0-9]+]]*/ GIMT_Encode4([[LABEL:[0-9]+]]), // Rule ID 21 //
397
398
//
398
399
// R20N-NEXT: GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
399
400
// R20N-NEXT: GIM_CheckOpcode, /*MI*/0, GIMT_Encode2(TargetOpcode::G_SUB),
@@ -415,7 +416,7 @@ def : Pat<(select GPR32:$src1, (complex_rr GPR32:$src2a, GPR32:$src2b),
415
416
// R20C-NEXT: GIR_ComplexRenderer, /*InsnID*/0, /*RendererID*/GIMT_Encode2(0),
416
417
// R20C-NEXT: GIR_EraseFromParent, /*InsnID*/0,
417
418
// R20C-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
418
- // R20C-NEXT: // GIR_Coverage, 20 ,
419
+ // R20C-NEXT: // GIR_Coverage, 21 ,
419
420
// R20C-NEXT: GIR_Done,
420
421
// R20C-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
421
422
//
@@ -455,7 +456,7 @@ def : Pat<(frag GPR32:$src1, complex:$src2, complex:$src3),
455
456
// R00O-NEXT: GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
456
457
// R00O-NEXT: GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/GIMT_Encode2(MyTarget::GPR32RegClassID),
457
458
//
458
- // R00C: GIM_Try, /*On fail goto*//*Label [[PREV_NUM:[0-9]+]]*/ GIMT_Encode4([[PREV:[0-9]+]]), // Rule ID 20 //
459
+ // R00C: GIM_Try, /*On fail goto*//*Label [[PREV_NUM:[0-9]+]]*/ GIMT_Encode4([[PREV:[0-9]+]]), // Rule ID 21 //
459
460
// R00C: // Label [[PREV_NUM]]: @[[PREV]]
460
461
//
461
462
// R00C-NEXT: GIM_Try, /*On fail goto*//*Label [[LABEL_NUM:[0-9]+]]*/ GIMT_Encode4([[LABEL:[0-9]+]]), // Rule ID 0 //
@@ -517,7 +518,7 @@ def : Pat<(frag GPR32:$src1, complex:$src2, complex:$src3),
517
518
// R00O-NEXT: GIM_Reject,
518
519
// R00O: // Label [[DEFAULT_NUM]]: @[[DEFAULT]]
519
520
// R00O-NEXT: GIM_Reject,
520
- // R00O-NEXT: }; // Size: 1978 bytes
521
+ // R00O-NEXT: }; // Size: 2007 bytes
521
522
522
523
def INSNBOB : I<(outs GPR32:$dst), (ins GPR32:$src1, GPR32:$src2, GPR32:$src3, GPR32:$src4),
523
524
[(set GPR32:$dst,
@@ -709,6 +710,35 @@ def XORlike : I<(outs GPR32:$dst), (ins m1Z:$src2, GPR32:$src1),
709
710
def XORManyDefaults : I<(outs GPR32:$dst), (ins m1Z:$src3, Z:$src2, GPR32:$src1),
710
711
[(set GPR32:$dst, (xor GPR32:$src1, -5))]>;
711
712
713
+ //===- Test a simple pattern with a default bits operand. -----------------===//
714
+ //
715
+ // NOOPT-NEXT: GIM_Try, /*On fail goto*//*Label [[LABEL_NUM:[0-9]+]]*/ GIMT_Encode4([[LABEL:[0-9]+]]),
716
+ // NOOPT-NEXT: GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
717
+ // NOOPT-NEXT: GIM_CheckOpcode, /*MI*/0, GIMT_Encode2(TargetOpcode::G_XOR),
718
+ // NOOPT-NEXT: // MIs[0] DstI[dst]
719
+ // NOOPT-NEXT: GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
720
+ // NOOPT-NEXT: GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/GIMT_Encode2(MyTarget::GPR32RegClassID),
721
+ // NOOPT-NEXT: // MIs[0] src1
722
+ // NOOPT-NEXT: GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
723
+ // NOOPT-NEXT: GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/GIMT_Encode2(MyTarget::GPR32RegClassID),
724
+ // NOOPT-NEXT: // MIs[0] Operand 2
725
+ // NOOPT-NEXT: GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
726
+ // NOOPT-NEXT: GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, uint8_t(-6)
727
+ // NOOPT-NEXT: // (xor:{ *:[i32] } GPR32:{ *:[i32] }:$src1, -6:{ *:[i32] }) => (XORIb:{ *:[i32] } GPR32:{ *:[i32] }:$src1)
728
+ // NOOPT-NEXT: GIR_BuildMI, /*InsnID*/0, /*Opcode*/GIMT_Encode2(MyTarget::XORIb),
729
+ // NOOPT-NEXT: GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // DstI[dst]
730
+ // NOOPT-NEXT: GIR_AddImm8, /*InsnID*/0, /*Imm*/13,
731
+ // NOOPT-NEXT: GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
732
+ // NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
733
+ // NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
734
+ // NOOPT-NEXT: // GIR_Coverage, 6,
735
+ // NOOPT-NEXT: GIR_Done,
736
+ // NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
737
+
738
+ // The -6 is just to distinguish it from the other cases.
739
+ def XORIb : I<(outs GPR32:$dst), (ins mb:$src2, GPR32:$src1),
740
+ [(set GPR32:$dst, (xor GPR32:$src1, -6))]>;
741
+
712
742
//===- Test a simple pattern with constant immediate operands. ------------===//
713
743
//
714
744
// This must precede the 3-register variants because constant immediates have
@@ -733,7 +763,7 @@ def XORManyDefaults : I<(outs GPR32:$dst), (ins m1Z:$src3, Z:$src2, GPR32:$src1)
733
763
// NOOPT-NEXT: GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // Wm
734
764
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
735
765
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
736
- // NOOPT-NEXT: // GIR_Coverage, 22 ,
766
+ // NOOPT-NEXT: // GIR_Coverage, 23 ,
737
767
// NOOPT-NEXT: GIR_Done,
738
768
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
739
769
@@ -774,7 +804,7 @@ def : Pat<(not GPR32:$Wm), (ORN R0, GPR32:$Wm)>;
774
804
// NOOPT-NEXT: GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // src3
775
805
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
776
806
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
777
- // NOOPT-NEXT: // GIR_Coverage, 6 ,
807
+ // NOOPT-NEXT: // GIR_Coverage, 7 ,
778
808
// NOOPT-NEXT: GIR_Done,
779
809
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
780
810
@@ -812,7 +842,7 @@ def : Pat<(not GPR32:$Wm), (ORN R0, GPR32:$Wm)>;
812
842
// NOOPT-NEXT: GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src3
813
843
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
814
844
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
815
- // NOOPT-NEXT: // GIR_Coverage, 27 ,
845
+ // NOOPT-NEXT: // GIR_Coverage, 28 ,
816
846
// NOOPT-NEXT: GIR_Done,
817
847
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
818
848
@@ -836,7 +866,7 @@ def MULADD : I<(outs GPR32:$dst), (ins GPR32:$src1, GPR32:$src2, GPR32:$src3),
836
866
// NOOPT-NEXT: GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // DstI[dst]
837
867
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
838
868
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
839
- // NOOPT-NEXT: // GIR_Coverage, 7 ,
869
+ // NOOPT-NEXT: // GIR_Coverage, 8 ,
840
870
// NOOPT-NEXT: GIR_Done,
841
871
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
842
872
@@ -859,7 +889,7 @@ def MOV1 : I<(outs GPR32:$dst), (ins), [(set GPR32:$dst, 1)]>;
859
889
// NOOPT-NEXT: GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
860
890
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
861
891
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
862
- // NOOPT-NEXT: // GIR_Coverage, 8 ,
892
+ // NOOPT-NEXT: // GIR_Coverage, 9 ,
863
893
// NOOPT-NEXT: GIR_Done,
864
894
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
865
895
@@ -883,7 +913,7 @@ def MOVimm8 : I<(outs GPR32:$dst), (ins i32imm:$imm), [(set GPR32:$dst, simm8:$i
883
913
// NOOPT-NEXT: GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
884
914
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
885
915
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
886
- // NOOPT-NEXT: // GIR_Coverage, 9 ,
916
+ // NOOPT-NEXT: // GIR_Coverage, 10 ,
887
917
// NOOPT-NEXT: GIR_Done,
888
918
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
889
919
@@ -907,7 +937,7 @@ def MOVimm9 : I<(outs GPR32:$dst), (ins i32imm:$imm), [(set GPR32:$dst, simm9:$i
907
937
// NOOPT-NEXT: GIR_CustomRenderer, /*InsnID*/0, /*OldInsnID*/0, /*Renderer*/GIMT_Encode2(GICR_renderImm), // imm
908
938
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
909
939
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
910
- // NOOPT-NEXT: // GIR_Coverage, 10 ,
940
+ // NOOPT-NEXT: // GIR_Coverage, 11 ,
911
941
// NOOPT-NEXT: GIR_Done,
912
942
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
913
943
@@ -930,7 +960,7 @@ def MOVcimm8 : I<(outs GPR32:$dst), (ins i32imm:$imm), [(set GPR32:$dst, cimm8:$
930
960
// NOOPT-NEXT: GIR_CopyFConstantAsFPImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
931
961
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
932
962
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
933
- // NOOPT-NEXT: // GIR_Coverage, 17 ,
963
+ // NOOPT-NEXT: // GIR_Coverage, 18 ,
934
964
// NOOPT-NEXT: GIR_Done,
935
965
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
936
966
@@ -950,7 +980,7 @@ def MOVcimm8 : I<(outs GPR32:$dst), (ins i32imm:$imm), [(set GPR32:$dst, cimm8:$
950
980
// NOOPT-NEXT: // (ld:{ *:[i32] } GPR32:{ *:[i32] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LOAD:{ *:[i32] } GPR32:{ *:[i32] }:$src1)
951
981
// NOOPT-NEXT: GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(MyTarget::LOAD),
952
982
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
953
- // NOOPT-NEXT: // GIR_Coverage, 11 ,
983
+ // NOOPT-NEXT: // GIR_Coverage, 12 ,
954
984
// NOOPT-NEXT: GIR_Done,
955
985
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
956
986
@@ -973,7 +1003,7 @@ def LOAD : I<(outs GPR32:$dst), (ins GPR32:$src1),
973
1003
// NOOPT-NEXT: // (ld:{ *:[i32] } GPR32:{ *:[i32] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LOAD:{ *:[i32] } GPR32:{ *:[i32] }:$src)
974
1004
// NOOPT-NEXT: GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(MyTarget::LOAD),
975
1005
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
976
- // NOOPT-NEXT: // GIR_Coverage, 23 ,
1006
+ // NOOPT-NEXT: // GIR_Coverage, 24 ,
977
1007
// NOOPT-NEXT: GIR_Done,
978
1008
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
979
1009
@@ -996,7 +1026,7 @@ def : Pat<(load GPR32:$src),
996
1026
// NOOPT-NEXT: // (ld:{ *:[i32] } GPR32:{ *:[i32] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> => (SEXTLOAD:{ *:[i32] } GPR32:{ *:[i32] }:$src1)
997
1027
// NOOPT-NEXT: GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(MyTarget::SEXTLOAD),
998
1028
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
999
- // NOOPT-NEXT: // GIR_Coverage, 12 ,
1029
+ // NOOPT-NEXT: // GIR_Coverage, 13 ,
1000
1030
// NOOPT-NEXT: GIR_Done,
1001
1031
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
1002
1032
@@ -1020,7 +1050,7 @@ def SEXTLOAD : I<(outs GPR32:$dst), (ins GPR32:$src1),
1020
1050
// NOOPT-NEXT: // (add:{ *:[i32] } GPR32:{ *:[i32] }:$src1, GPR32:{ *:[i32] }:$src2) => (ADD:{ *:[i32] } GPR32:{ *:[i32] }:$src1, GPR32:{ *:[i32] }:$src2)
1021
1051
// NOOPT-NEXT: GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(MyTarget::ADD),
1022
1052
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1023
- // NOOPT-NEXT: // GIR_Coverage, 13 ,
1053
+ // NOOPT-NEXT: // GIR_Coverage, 14 ,
1024
1054
// NOOPT-NEXT: GIR_Done,
1025
1055
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
1026
1056
@@ -1046,7 +1076,7 @@ def ADD : I<(outs GPR32:$dst), (ins GPR32:$src1, GPR32:$src2),
1046
1076
// NOOPT-NEXT: GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src
1047
1077
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
1048
1078
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1049
- // NOOPT-NEXT: // GIR_Coverage, 14 ,
1079
+ // NOOPT-NEXT: // GIR_Coverage, 15 ,
1050
1080
// NOOPT-NEXT: GIR_Done,
1051
1081
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
1052
1082
@@ -1073,7 +1103,7 @@ def DOUBLE : I<(outs GPR32:$dst), (ins GPR32:$src), [(set GPR32:$dst, (add GPR32
1073
1103
// NOOPT-NEXT: // (add:{ *:[i32] } i32:{ *:[i32] }:$samename, i32:{ *:[i32] }:$othername) => (InsnWithSpeciallyNamedDef:{ *:[i32] } i32:{ *:[i32] }:$samename, i32:{ *:[i32] }:$othername)
1074
1104
// NOOPT-NEXT: GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(MyTarget::InsnWithSpeciallyNamedDef),
1075
1105
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1076
- // NOOPT-NEXT: // GIR_Coverage, 24 ,
1106
+ // NOOPT-NEXT: // GIR_Coverage, 25 ,
1077
1107
// NOOPT-NEXT: GIR_Done,
1078
1108
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
1079
1109
@@ -1096,7 +1126,7 @@ def : Pat<(add i32:$samename, i32:$othername),
1096
1126
// NOOPT-NEXT: // (add:{ *:[i32] } i32:{ *:[i32] }:$src1, i32:{ *:[i32] }:$src2) => (ADD:{ *:[i32] } i32:{ *:[i32] }:$src1, i32:{ *:[i32] }:$src2)
1097
1127
// NOOPT-NEXT: GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(MyTarget::ADD),
1098
1128
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1099
- // NOOPT-NEXT: // GIR_Coverage, 25 ,
1129
+ // NOOPT-NEXT: // GIR_Coverage, 26 ,
1100
1130
// NOOPT-NEXT: GIR_Done,
1101
1131
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
1102
1132
@@ -1125,7 +1155,7 @@ def : Pat<(add i32:$src1, i32:$src2),
1125
1155
// NOOPT-NEXT: GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // src1
1126
1156
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
1127
1157
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1128
- // NOOPT-NEXT: // GIR_Coverage, 15 ,
1158
+ // NOOPT-NEXT: // GIR_Coverage, 16 ,
1129
1159
// NOOPT-NEXT: GIR_Done,
1130
1160
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
1131
1161
@@ -1148,7 +1178,7 @@ def MUL : I<(outs GPR32:$dst), (ins GPR32:$src2, GPR32:$src1),
1148
1178
// NOOPT-NEXT: // (bitconvert:{ *:[i32] } FPR32:{ *:[f32] }:$src1) => (COPY_TO_REGCLASS:{ *:[i32] } FPR32:{ *:[f32] }:$src1, GPR32:{ *:[i32] })
1149
1179
// NOOPT-NEXT: GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
1150
1180
// NOOPT-NEXT: GIR_ConstrainOperandRC, /*InsnID*/0, /*Op*/0, GIMT_Encode2(MyTarget::GPR32RegClassID),
1151
- // NOOPT-NEXT: // GIR_Coverage, 26 ,
1181
+ // NOOPT-NEXT: // GIR_Coverage, 27 ,
1152
1182
// NOOPT-NEXT: GIR_Done,
1153
1183
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
1154
1184
@@ -1171,7 +1201,7 @@ def : Pat<(i32 (bitconvert FPR32:$src1)),
1171
1201
// NOOPT-NEXT: GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
1172
1202
// NOOPT-NEXT: GIR_EraseFromParent, /*InsnID*/0,
1173
1203
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1174
- // NOOPT-NEXT: // GIR_Coverage, 16 ,
1204
+ // NOOPT-NEXT: // GIR_Coverage, 17 ,
1175
1205
// NOOPT-NEXT: GIR_Done,
1176
1206
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
1177
1207
@@ -1190,13 +1220,13 @@ def MOVfpimmz : I<(outs FPR32:$dst), (ins f32imm:$imm), [(set FPR32:$dst, fpimmz
1190
1220
// NOOPT-NEXT: // (br (bb:{ *:[Other] }):$target) => (BR (bb:{ *:[Other] }):$target)
1191
1221
// NOOPT-NEXT: GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/GIMT_Encode2(MyTarget::BR),
1192
1222
// NOOPT-NEXT: GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
1193
- // NOOPT-NEXT: // GIR_Coverage, 18 ,
1223
+ // NOOPT-NEXT: // GIR_Coverage, 19 ,
1194
1224
// NOOPT-NEXT: GIR_Done,
1195
1225
// NOOPT-NEXT: // Label [[LABEL_NUM]]: @[[LABEL]]
1196
1226
1197
1227
def BR : I<(outs), (ins unknown:$target),
1198
1228
[(br bb:$target)]>;
1199
1229
1200
1230
// NOOPT-NEXT: GIM_Reject,
1201
- // NOOPT-NEXT: }; // Size: 1680 bytes
1231
+ // NOOPT-NEXT: }; // Size: 1738 bytes
1202
1232
// NOOPT-NEXT: return MatchTable0;
0 commit comments