@@ -842,6 +842,390 @@ define <vscale x 16 x i1> @match_nxv16i8_v32i8(<vscale x 16 x i8> %op1, <32 x i8
842
842
ret <vscale x 16 x i1 > %r
843
843
}
844
844
845
+ define <16 x i1 > @match_v16i8_v32i8 (<16 x i8 > %op1 , <32 x i8 > %op2 , <16 x i1 > %mask ) {
846
+ ; RV32-LABEL: match_v16i8_v32i8:
847
+ ; RV32: # %bb.0:
848
+ ; RV32-NEXT: addi sp, sp, -64
849
+ ; RV32-NEXT: .cfi_def_cfa_offset 64
850
+ ; RV32-NEXT: sw ra, 60(sp) # 4-byte Folded Spill
851
+ ; RV32-NEXT: sw s0, 56(sp) # 4-byte Folded Spill
852
+ ; RV32-NEXT: sw s1, 52(sp) # 4-byte Folded Spill
853
+ ; RV32-NEXT: sw s2, 48(sp) # 4-byte Folded Spill
854
+ ; RV32-NEXT: sw s3, 44(sp) # 4-byte Folded Spill
855
+ ; RV32-NEXT: sw s4, 40(sp) # 4-byte Folded Spill
856
+ ; RV32-NEXT: sw s5, 36(sp) # 4-byte Folded Spill
857
+ ; RV32-NEXT: sw s6, 32(sp) # 4-byte Folded Spill
858
+ ; RV32-NEXT: sw s7, 28(sp) # 4-byte Folded Spill
859
+ ; RV32-NEXT: sw s8, 24(sp) # 4-byte Folded Spill
860
+ ; RV32-NEXT: sw s9, 20(sp) # 4-byte Folded Spill
861
+ ; RV32-NEXT: sw s10, 16(sp) # 4-byte Folded Spill
862
+ ; RV32-NEXT: sw s11, 12(sp) # 4-byte Folded Spill
863
+ ; RV32-NEXT: .cfi_offset ra, -4
864
+ ; RV32-NEXT: .cfi_offset s0, -8
865
+ ; RV32-NEXT: .cfi_offset s1, -12
866
+ ; RV32-NEXT: .cfi_offset s2, -16
867
+ ; RV32-NEXT: .cfi_offset s3, -20
868
+ ; RV32-NEXT: .cfi_offset s4, -24
869
+ ; RV32-NEXT: .cfi_offset s5, -28
870
+ ; RV32-NEXT: .cfi_offset s6, -32
871
+ ; RV32-NEXT: .cfi_offset s7, -36
872
+ ; RV32-NEXT: .cfi_offset s8, -40
873
+ ; RV32-NEXT: .cfi_offset s9, -44
874
+ ; RV32-NEXT: .cfi_offset s10, -48
875
+ ; RV32-NEXT: .cfi_offset s11, -52
876
+ ; RV32-NEXT: vsetivli zero, 1, e8, m1, ta, ma
877
+ ; RV32-NEXT: vmv.x.s a0, v10
878
+ ; RV32-NEXT: vslidedown.vi v9, v10, 1
879
+ ; RV32-NEXT: vslidedown.vi v12, v10, 2
880
+ ; RV32-NEXT: vslidedown.vi v13, v10, 3
881
+ ; RV32-NEXT: vslidedown.vi v14, v10, 4
882
+ ; RV32-NEXT: vslidedown.vi v15, v10, 5
883
+ ; RV32-NEXT: vslidedown.vi v16, v10, 6
884
+ ; RV32-NEXT: vslidedown.vi v17, v10, 7
885
+ ; RV32-NEXT: vslidedown.vi v18, v10, 8
886
+ ; RV32-NEXT: vslidedown.vi v19, v10, 9
887
+ ; RV32-NEXT: vslidedown.vi v20, v10, 10
888
+ ; RV32-NEXT: vslidedown.vi v21, v10, 11
889
+ ; RV32-NEXT: vslidedown.vi v22, v10, 12
890
+ ; RV32-NEXT: vsetivli zero, 1, e8, m2, ta, ma
891
+ ; RV32-NEXT: vslidedown.vi v24, v10, 16
892
+ ; RV32-NEXT: vmv.x.s a1, v24
893
+ ; RV32-NEXT: vslidedown.vi v24, v10, 17
894
+ ; RV32-NEXT: vmv.x.s a2, v24
895
+ ; RV32-NEXT: vslidedown.vi v24, v10, 18
896
+ ; RV32-NEXT: vmv.x.s a3, v24
897
+ ; RV32-NEXT: vslidedown.vi v24, v10, 19
898
+ ; RV32-NEXT: vmv.x.s a4, v24
899
+ ; RV32-NEXT: vslidedown.vi v24, v10, 20
900
+ ; RV32-NEXT: vmv.x.s a5, v24
901
+ ; RV32-NEXT: vslidedown.vi v24, v10, 21
902
+ ; RV32-NEXT: vmv.x.s a6, v24
903
+ ; RV32-NEXT: vslidedown.vi v24, v10, 22
904
+ ; RV32-NEXT: vmv.x.s a7, v24
905
+ ; RV32-NEXT: vslidedown.vi v24, v10, 23
906
+ ; RV32-NEXT: vmv.x.s t0, v24
907
+ ; RV32-NEXT: vslidedown.vi v24, v10, 24
908
+ ; RV32-NEXT: vmv.x.s t1, v24
909
+ ; RV32-NEXT: vslidedown.vi v24, v10, 25
910
+ ; RV32-NEXT: vmv.x.s t2, v24
911
+ ; RV32-NEXT: vslidedown.vi v24, v10, 26
912
+ ; RV32-NEXT: vmv.x.s t3, v24
913
+ ; RV32-NEXT: vslidedown.vi v24, v10, 27
914
+ ; RV32-NEXT: vmv.x.s t4, v24
915
+ ; RV32-NEXT: vslidedown.vi v24, v10, 28
916
+ ; RV32-NEXT: vmv.x.s t5, v24
917
+ ; RV32-NEXT: vslidedown.vi v24, v10, 29
918
+ ; RV32-NEXT: vmv.x.s t6, v24
919
+ ; RV32-NEXT: vslidedown.vi v24, v10, 30
920
+ ; RV32-NEXT: vmv.x.s s0, v24
921
+ ; RV32-NEXT: vslidedown.vi v24, v10, 31
922
+ ; RV32-NEXT: vmv.x.s s1, v24
923
+ ; RV32-NEXT: vsetivli zero, 16, e8, m1, ta, ma
924
+ ; RV32-NEXT: vslidedown.vi v11, v10, 13
925
+ ; RV32-NEXT: vslidedown.vi v23, v10, 14
926
+ ; RV32-NEXT: vslidedown.vi v10, v10, 15
927
+ ; RV32-NEXT: vmv.x.s s2, v9
928
+ ; RV32-NEXT: vmv.x.s s3, v12
929
+ ; RV32-NEXT: vmv.x.s s4, v13
930
+ ; RV32-NEXT: vmv.x.s s5, v14
931
+ ; RV32-NEXT: vmv.x.s s6, v15
932
+ ; RV32-NEXT: vmv.x.s s7, v16
933
+ ; RV32-NEXT: vmv.x.s s8, v17
934
+ ; RV32-NEXT: vmv.x.s s9, v18
935
+ ; RV32-NEXT: vmv.x.s s10, v19
936
+ ; RV32-NEXT: vmv.x.s s11, v20
937
+ ; RV32-NEXT: vmv.x.s ra, v21
938
+ ; RV32-NEXT: vmseq.vx v9, v8, a0
939
+ ; RV32-NEXT: vmv.x.s a0, v22
940
+ ; RV32-NEXT: vmseq.vx v12, v8, s2
941
+ ; RV32-NEXT: vmv.x.s s2, v11
942
+ ; RV32-NEXT: vmseq.vx v11, v8, s3
943
+ ; RV32-NEXT: vmv.x.s s3, v23
944
+ ; RV32-NEXT: vmseq.vx v13, v8, s4
945
+ ; RV32-NEXT: vmv.x.s s4, v10
946
+ ; RV32-NEXT: vmseq.vx v10, v8, s5
947
+ ; RV32-NEXT: vmor.mm v9, v9, v12
948
+ ; RV32-NEXT: vmseq.vx v12, v8, s6
949
+ ; RV32-NEXT: vmor.mm v9, v9, v11
950
+ ; RV32-NEXT: vmseq.vx v11, v8, s7
951
+ ; RV32-NEXT: vmor.mm v9, v9, v13
952
+ ; RV32-NEXT: vmseq.vx v13, v8, s8
953
+ ; RV32-NEXT: vmor.mm v9, v9, v10
954
+ ; RV32-NEXT: vmseq.vx v10, v8, s9
955
+ ; RV32-NEXT: vmor.mm v9, v9, v12
956
+ ; RV32-NEXT: vmseq.vx v12, v8, s10
957
+ ; RV32-NEXT: vmor.mm v9, v9, v11
958
+ ; RV32-NEXT: vmseq.vx v11, v8, s11
959
+ ; RV32-NEXT: vmor.mm v9, v9, v13
960
+ ; RV32-NEXT: vmseq.vx v13, v8, ra
961
+ ; RV32-NEXT: vmor.mm v9, v9, v10
962
+ ; RV32-NEXT: vmseq.vx v10, v8, a0
963
+ ; RV32-NEXT: vmor.mm v9, v9, v12
964
+ ; RV32-NEXT: vmseq.vx v12, v8, s2
965
+ ; RV32-NEXT: vmor.mm v9, v9, v11
966
+ ; RV32-NEXT: vmseq.vx v11, v8, s3
967
+ ; RV32-NEXT: vmor.mm v9, v9, v13
968
+ ; RV32-NEXT: vmseq.vx v13, v8, s4
969
+ ; RV32-NEXT: vmor.mm v9, v9, v10
970
+ ; RV32-NEXT: vmseq.vx v10, v8, a1
971
+ ; RV32-NEXT: vmor.mm v9, v9, v12
972
+ ; RV32-NEXT: vmseq.vx v12, v8, a2
973
+ ; RV32-NEXT: vmor.mm v9, v9, v11
974
+ ; RV32-NEXT: vmseq.vx v11, v8, a3
975
+ ; RV32-NEXT: vmor.mm v9, v9, v13
976
+ ; RV32-NEXT: vmseq.vx v13, v8, a4
977
+ ; RV32-NEXT: vmor.mm v9, v9, v10
978
+ ; RV32-NEXT: vmseq.vx v10, v8, a5
979
+ ; RV32-NEXT: vmor.mm v9, v9, v12
980
+ ; RV32-NEXT: vmseq.vx v12, v8, a6
981
+ ; RV32-NEXT: vmor.mm v9, v9, v11
982
+ ; RV32-NEXT: vmseq.vx v11, v8, a7
983
+ ; RV32-NEXT: vmor.mm v9, v9, v13
984
+ ; RV32-NEXT: vmseq.vx v13, v8, t0
985
+ ; RV32-NEXT: vmor.mm v9, v9, v10
986
+ ; RV32-NEXT: vmseq.vx v10, v8, t1
987
+ ; RV32-NEXT: vmor.mm v9, v9, v12
988
+ ; RV32-NEXT: vmseq.vx v12, v8, t2
989
+ ; RV32-NEXT: vmor.mm v9, v9, v11
990
+ ; RV32-NEXT: vmseq.vx v11, v8, t3
991
+ ; RV32-NEXT: vmor.mm v9, v9, v13
992
+ ; RV32-NEXT: vmseq.vx v13, v8, t4
993
+ ; RV32-NEXT: vmor.mm v9, v9, v10
994
+ ; RV32-NEXT: vmseq.vx v10, v8, t5
995
+ ; RV32-NEXT: vmor.mm v9, v9, v12
996
+ ; RV32-NEXT: vmseq.vx v12, v8, t6
997
+ ; RV32-NEXT: vmor.mm v9, v9, v11
998
+ ; RV32-NEXT: vmseq.vx v11, v8, s0
999
+ ; RV32-NEXT: vmor.mm v9, v9, v13
1000
+ ; RV32-NEXT: vmor.mm v9, v9, v10
1001
+ ; RV32-NEXT: vmor.mm v9, v9, v12
1002
+ ; RV32-NEXT: vmor.mm v9, v9, v11
1003
+ ; RV32-NEXT: vmseq.vx v8, v8, s1
1004
+ ; RV32-NEXT: vmor.mm v8, v9, v8
1005
+ ; RV32-NEXT: vmand.mm v0, v8, v0
1006
+ ; RV32-NEXT: lw ra, 60(sp) # 4-byte Folded Reload
1007
+ ; RV32-NEXT: lw s0, 56(sp) # 4-byte Folded Reload
1008
+ ; RV32-NEXT: lw s1, 52(sp) # 4-byte Folded Reload
1009
+ ; RV32-NEXT: lw s2, 48(sp) # 4-byte Folded Reload
1010
+ ; RV32-NEXT: lw s3, 44(sp) # 4-byte Folded Reload
1011
+ ; RV32-NEXT: lw s4, 40(sp) # 4-byte Folded Reload
1012
+ ; RV32-NEXT: lw s5, 36(sp) # 4-byte Folded Reload
1013
+ ; RV32-NEXT: lw s6, 32(sp) # 4-byte Folded Reload
1014
+ ; RV32-NEXT: lw s7, 28(sp) # 4-byte Folded Reload
1015
+ ; RV32-NEXT: lw s8, 24(sp) # 4-byte Folded Reload
1016
+ ; RV32-NEXT: lw s9, 20(sp) # 4-byte Folded Reload
1017
+ ; RV32-NEXT: lw s10, 16(sp) # 4-byte Folded Reload
1018
+ ; RV32-NEXT: lw s11, 12(sp) # 4-byte Folded Reload
1019
+ ; RV32-NEXT: .cfi_restore ra
1020
+ ; RV32-NEXT: .cfi_restore s0
1021
+ ; RV32-NEXT: .cfi_restore s1
1022
+ ; RV32-NEXT: .cfi_restore s2
1023
+ ; RV32-NEXT: .cfi_restore s3
1024
+ ; RV32-NEXT: .cfi_restore s4
1025
+ ; RV32-NEXT: .cfi_restore s5
1026
+ ; RV32-NEXT: .cfi_restore s6
1027
+ ; RV32-NEXT: .cfi_restore s7
1028
+ ; RV32-NEXT: .cfi_restore s8
1029
+ ; RV32-NEXT: .cfi_restore s9
1030
+ ; RV32-NEXT: .cfi_restore s10
1031
+ ; RV32-NEXT: .cfi_restore s11
1032
+ ; RV32-NEXT: addi sp, sp, 64
1033
+ ; RV32-NEXT: .cfi_def_cfa_offset 0
1034
+ ; RV32-NEXT: ret
1035
+ ;
1036
+ ; RV64-LABEL: match_v16i8_v32i8:
1037
+ ; RV64: # %bb.0:
1038
+ ; RV64-NEXT: addi sp, sp, -112
1039
+ ; RV64-NEXT: .cfi_def_cfa_offset 112
1040
+ ; RV64-NEXT: sd ra, 104(sp) # 8-byte Folded Spill
1041
+ ; RV64-NEXT: sd s0, 96(sp) # 8-byte Folded Spill
1042
+ ; RV64-NEXT: sd s1, 88(sp) # 8-byte Folded Spill
1043
+ ; RV64-NEXT: sd s2, 80(sp) # 8-byte Folded Spill
1044
+ ; RV64-NEXT: sd s3, 72(sp) # 8-byte Folded Spill
1045
+ ; RV64-NEXT: sd s4, 64(sp) # 8-byte Folded Spill
1046
+ ; RV64-NEXT: sd s5, 56(sp) # 8-byte Folded Spill
1047
+ ; RV64-NEXT: sd s6, 48(sp) # 8-byte Folded Spill
1048
+ ; RV64-NEXT: sd s7, 40(sp) # 8-byte Folded Spill
1049
+ ; RV64-NEXT: sd s8, 32(sp) # 8-byte Folded Spill
1050
+ ; RV64-NEXT: sd s9, 24(sp) # 8-byte Folded Spill
1051
+ ; RV64-NEXT: sd s10, 16(sp) # 8-byte Folded Spill
1052
+ ; RV64-NEXT: sd s11, 8(sp) # 8-byte Folded Spill
1053
+ ; RV64-NEXT: .cfi_offset ra, -8
1054
+ ; RV64-NEXT: .cfi_offset s0, -16
1055
+ ; RV64-NEXT: .cfi_offset s1, -24
1056
+ ; RV64-NEXT: .cfi_offset s2, -32
1057
+ ; RV64-NEXT: .cfi_offset s3, -40
1058
+ ; RV64-NEXT: .cfi_offset s4, -48
1059
+ ; RV64-NEXT: .cfi_offset s5, -56
1060
+ ; RV64-NEXT: .cfi_offset s6, -64
1061
+ ; RV64-NEXT: .cfi_offset s7, -72
1062
+ ; RV64-NEXT: .cfi_offset s8, -80
1063
+ ; RV64-NEXT: .cfi_offset s9, -88
1064
+ ; RV64-NEXT: .cfi_offset s10, -96
1065
+ ; RV64-NEXT: .cfi_offset s11, -104
1066
+ ; RV64-NEXT: vsetivli zero, 1, e8, m1, ta, ma
1067
+ ; RV64-NEXT: vmv.x.s a0, v10
1068
+ ; RV64-NEXT: vslidedown.vi v9, v10, 1
1069
+ ; RV64-NEXT: vslidedown.vi v12, v10, 2
1070
+ ; RV64-NEXT: vslidedown.vi v13, v10, 3
1071
+ ; RV64-NEXT: vslidedown.vi v14, v10, 4
1072
+ ; RV64-NEXT: vslidedown.vi v15, v10, 5
1073
+ ; RV64-NEXT: vslidedown.vi v16, v10, 6
1074
+ ; RV64-NEXT: vslidedown.vi v17, v10, 7
1075
+ ; RV64-NEXT: vslidedown.vi v18, v10, 8
1076
+ ; RV64-NEXT: vslidedown.vi v19, v10, 9
1077
+ ; RV64-NEXT: vslidedown.vi v20, v10, 10
1078
+ ; RV64-NEXT: vslidedown.vi v21, v10, 11
1079
+ ; RV64-NEXT: vslidedown.vi v22, v10, 12
1080
+ ; RV64-NEXT: vsetivli zero, 1, e8, m2, ta, ma
1081
+ ; RV64-NEXT: vslidedown.vi v24, v10, 16
1082
+ ; RV64-NEXT: vmv.x.s a1, v24
1083
+ ; RV64-NEXT: vslidedown.vi v24, v10, 17
1084
+ ; RV64-NEXT: vmv.x.s a2, v24
1085
+ ; RV64-NEXT: vslidedown.vi v24, v10, 18
1086
+ ; RV64-NEXT: vmv.x.s a3, v24
1087
+ ; RV64-NEXT: vslidedown.vi v24, v10, 19
1088
+ ; RV64-NEXT: vmv.x.s a4, v24
1089
+ ; RV64-NEXT: vslidedown.vi v24, v10, 20
1090
+ ; RV64-NEXT: vmv.x.s a5, v24
1091
+ ; RV64-NEXT: vslidedown.vi v24, v10, 21
1092
+ ; RV64-NEXT: vmv.x.s a6, v24
1093
+ ; RV64-NEXT: vslidedown.vi v24, v10, 22
1094
+ ; RV64-NEXT: vmv.x.s a7, v24
1095
+ ; RV64-NEXT: vslidedown.vi v24, v10, 23
1096
+ ; RV64-NEXT: vmv.x.s t0, v24
1097
+ ; RV64-NEXT: vslidedown.vi v24, v10, 24
1098
+ ; RV64-NEXT: vmv.x.s t1, v24
1099
+ ; RV64-NEXT: vslidedown.vi v24, v10, 25
1100
+ ; RV64-NEXT: vmv.x.s t2, v24
1101
+ ; RV64-NEXT: vslidedown.vi v24, v10, 26
1102
+ ; RV64-NEXT: vmv.x.s t3, v24
1103
+ ; RV64-NEXT: vslidedown.vi v24, v10, 27
1104
+ ; RV64-NEXT: vmv.x.s t4, v24
1105
+ ; RV64-NEXT: vslidedown.vi v24, v10, 28
1106
+ ; RV64-NEXT: vmv.x.s t5, v24
1107
+ ; RV64-NEXT: vslidedown.vi v24, v10, 29
1108
+ ; RV64-NEXT: vmv.x.s t6, v24
1109
+ ; RV64-NEXT: vslidedown.vi v24, v10, 30
1110
+ ; RV64-NEXT: vmv.x.s s0, v24
1111
+ ; RV64-NEXT: vslidedown.vi v24, v10, 31
1112
+ ; RV64-NEXT: vmv.x.s s1, v24
1113
+ ; RV64-NEXT: vsetivli zero, 16, e8, m1, ta, ma
1114
+ ; RV64-NEXT: vslidedown.vi v11, v10, 13
1115
+ ; RV64-NEXT: vslidedown.vi v23, v10, 14
1116
+ ; RV64-NEXT: vslidedown.vi v10, v10, 15
1117
+ ; RV64-NEXT: vmv.x.s s2, v9
1118
+ ; RV64-NEXT: vmv.x.s s3, v12
1119
+ ; RV64-NEXT: vmv.x.s s4, v13
1120
+ ; RV64-NEXT: vmv.x.s s5, v14
1121
+ ; RV64-NEXT: vmv.x.s s6, v15
1122
+ ; RV64-NEXT: vmv.x.s s7, v16
1123
+ ; RV64-NEXT: vmv.x.s s8, v17
1124
+ ; RV64-NEXT: vmv.x.s s9, v18
1125
+ ; RV64-NEXT: vmv.x.s s10, v19
1126
+ ; RV64-NEXT: vmv.x.s s11, v20
1127
+ ; RV64-NEXT: vmv.x.s ra, v21
1128
+ ; RV64-NEXT: vmseq.vx v9, v8, a0
1129
+ ; RV64-NEXT: vmv.x.s a0, v22
1130
+ ; RV64-NEXT: vmseq.vx v12, v8, s2
1131
+ ; RV64-NEXT: vmv.x.s s2, v11
1132
+ ; RV64-NEXT: vmseq.vx v11, v8, s3
1133
+ ; RV64-NEXT: vmv.x.s s3, v23
1134
+ ; RV64-NEXT: vmseq.vx v13, v8, s4
1135
+ ; RV64-NEXT: vmv.x.s s4, v10
1136
+ ; RV64-NEXT: vmseq.vx v10, v8, s5
1137
+ ; RV64-NEXT: vmor.mm v9, v9, v12
1138
+ ; RV64-NEXT: vmseq.vx v12, v8, s6
1139
+ ; RV64-NEXT: vmor.mm v9, v9, v11
1140
+ ; RV64-NEXT: vmseq.vx v11, v8, s7
1141
+ ; RV64-NEXT: vmor.mm v9, v9, v13
1142
+ ; RV64-NEXT: vmseq.vx v13, v8, s8
1143
+ ; RV64-NEXT: vmor.mm v9, v9, v10
1144
+ ; RV64-NEXT: vmseq.vx v10, v8, s9
1145
+ ; RV64-NEXT: vmor.mm v9, v9, v12
1146
+ ; RV64-NEXT: vmseq.vx v12, v8, s10
1147
+ ; RV64-NEXT: vmor.mm v9, v9, v11
1148
+ ; RV64-NEXT: vmseq.vx v11, v8, s11
1149
+ ; RV64-NEXT: vmor.mm v9, v9, v13
1150
+ ; RV64-NEXT: vmseq.vx v13, v8, ra
1151
+ ; RV64-NEXT: vmor.mm v9, v9, v10
1152
+ ; RV64-NEXT: vmseq.vx v10, v8, a0
1153
+ ; RV64-NEXT: vmor.mm v9, v9, v12
1154
+ ; RV64-NEXT: vmseq.vx v12, v8, s2
1155
+ ; RV64-NEXT: vmor.mm v9, v9, v11
1156
+ ; RV64-NEXT: vmseq.vx v11, v8, s3
1157
+ ; RV64-NEXT: vmor.mm v9, v9, v13
1158
+ ; RV64-NEXT: vmseq.vx v13, v8, s4
1159
+ ; RV64-NEXT: vmor.mm v9, v9, v10
1160
+ ; RV64-NEXT: vmseq.vx v10, v8, a1
1161
+ ; RV64-NEXT: vmor.mm v9, v9, v12
1162
+ ; RV64-NEXT: vmseq.vx v12, v8, a2
1163
+ ; RV64-NEXT: vmor.mm v9, v9, v11
1164
+ ; RV64-NEXT: vmseq.vx v11, v8, a3
1165
+ ; RV64-NEXT: vmor.mm v9, v9, v13
1166
+ ; RV64-NEXT: vmseq.vx v13, v8, a4
1167
+ ; RV64-NEXT: vmor.mm v9, v9, v10
1168
+ ; RV64-NEXT: vmseq.vx v10, v8, a5
1169
+ ; RV64-NEXT: vmor.mm v9, v9, v12
1170
+ ; RV64-NEXT: vmseq.vx v12, v8, a6
1171
+ ; RV64-NEXT: vmor.mm v9, v9, v11
1172
+ ; RV64-NEXT: vmseq.vx v11, v8, a7
1173
+ ; RV64-NEXT: vmor.mm v9, v9, v13
1174
+ ; RV64-NEXT: vmseq.vx v13, v8, t0
1175
+ ; RV64-NEXT: vmor.mm v9, v9, v10
1176
+ ; RV64-NEXT: vmseq.vx v10, v8, t1
1177
+ ; RV64-NEXT: vmor.mm v9, v9, v12
1178
+ ; RV64-NEXT: vmseq.vx v12, v8, t2
1179
+ ; RV64-NEXT: vmor.mm v9, v9, v11
1180
+ ; RV64-NEXT: vmseq.vx v11, v8, t3
1181
+ ; RV64-NEXT: vmor.mm v9, v9, v13
1182
+ ; RV64-NEXT: vmseq.vx v13, v8, t4
1183
+ ; RV64-NEXT: vmor.mm v9, v9, v10
1184
+ ; RV64-NEXT: vmseq.vx v10, v8, t5
1185
+ ; RV64-NEXT: vmor.mm v9, v9, v12
1186
+ ; RV64-NEXT: vmseq.vx v12, v8, t6
1187
+ ; RV64-NEXT: vmor.mm v9, v9, v11
1188
+ ; RV64-NEXT: vmseq.vx v11, v8, s0
1189
+ ; RV64-NEXT: vmor.mm v9, v9, v13
1190
+ ; RV64-NEXT: vmor.mm v9, v9, v10
1191
+ ; RV64-NEXT: vmor.mm v9, v9, v12
1192
+ ; RV64-NEXT: vmor.mm v9, v9, v11
1193
+ ; RV64-NEXT: vmseq.vx v8, v8, s1
1194
+ ; RV64-NEXT: vmor.mm v8, v9, v8
1195
+ ; RV64-NEXT: vmand.mm v0, v8, v0
1196
+ ; RV64-NEXT: ld ra, 104(sp) # 8-byte Folded Reload
1197
+ ; RV64-NEXT: ld s0, 96(sp) # 8-byte Folded Reload
1198
+ ; RV64-NEXT: ld s1, 88(sp) # 8-byte Folded Reload
1199
+ ; RV64-NEXT: ld s2, 80(sp) # 8-byte Folded Reload
1200
+ ; RV64-NEXT: ld s3, 72(sp) # 8-byte Folded Reload
1201
+ ; RV64-NEXT: ld s4, 64(sp) # 8-byte Folded Reload
1202
+ ; RV64-NEXT: ld s5, 56(sp) # 8-byte Folded Reload
1203
+ ; RV64-NEXT: ld s6, 48(sp) # 8-byte Folded Reload
1204
+ ; RV64-NEXT: ld s7, 40(sp) # 8-byte Folded Reload
1205
+ ; RV64-NEXT: ld s8, 32(sp) # 8-byte Folded Reload
1206
+ ; RV64-NEXT: ld s9, 24(sp) # 8-byte Folded Reload
1207
+ ; RV64-NEXT: ld s10, 16(sp) # 8-byte Folded Reload
1208
+ ; RV64-NEXT: ld s11, 8(sp) # 8-byte Folded Reload
1209
+ ; RV64-NEXT: .cfi_restore ra
1210
+ ; RV64-NEXT: .cfi_restore s0
1211
+ ; RV64-NEXT: .cfi_restore s1
1212
+ ; RV64-NEXT: .cfi_restore s2
1213
+ ; RV64-NEXT: .cfi_restore s3
1214
+ ; RV64-NEXT: .cfi_restore s4
1215
+ ; RV64-NEXT: .cfi_restore s5
1216
+ ; RV64-NEXT: .cfi_restore s6
1217
+ ; RV64-NEXT: .cfi_restore s7
1218
+ ; RV64-NEXT: .cfi_restore s8
1219
+ ; RV64-NEXT: .cfi_restore s9
1220
+ ; RV64-NEXT: .cfi_restore s10
1221
+ ; RV64-NEXT: .cfi_restore s11
1222
+ ; RV64-NEXT: addi sp, sp, 112
1223
+ ; RV64-NEXT: .cfi_def_cfa_offset 0
1224
+ ; RV64-NEXT: ret
1225
+ %r = tail call <16 x i1 > @llvm.experimental.vector.match (<16 x i8 > %op1 , <32 x i8 > %op2 , <16 x i1 > %mask )
1226
+ ret <16 x i1 > %r
1227
+ }
1228
+
845
1229
define <vscale x 4 x i1 > @match_nxv4xi32_v4i32 (<vscale x 4 x i32 > %op1 , <4 x i32 > %op2 , <vscale x 4 x i1 > %mask ) {
846
1230
; CHECK-LABEL: match_nxv4xi32_v4i32:
847
1231
; CHECK: # %bb.0:
0 commit comments