@@ -1080,184 +1080,74 @@ define i32 @sext_or_constant2(i32 signext %x) {
10801080
10811081
10821082define i32 @select_0_6 (i32 signext %x ) {
1083- ; RV32I-LABEL: select_0_6:
1084- ; RV32I: # %bb.0:
1085- ; RV32I-NEXT: srai a0, a0, 2
1086- ; RV32I-NEXT: srli a0, a0, 30
1087- ; RV32I-NEXT: slli a0, a0, 1
1088- ; RV32I-NEXT: ret
1089- ;
1090- ; RV32IF-LABEL: select_0_6:
1091- ; RV32IF: # %bb.0:
1092- ; RV32IF-NEXT: srai a0, a0, 2
1093- ; RV32IF-NEXT: srli a0, a0, 30
1094- ; RV32IF-NEXT: slli a0, a0, 1
1095- ; RV32IF-NEXT: ret
1096- ;
1097- ; RV32ZICOND-LABEL: select_0_6:
1098- ; RV32ZICOND: # %bb.0:
1099- ; RV32ZICOND-NEXT: srli a0, a0, 31
1100- ; RV32ZICOND-NEXT: li a1, 6
1101- ; RV32ZICOND-NEXT: czero.eqz a0, a1, a0
1102- ; RV32ZICOND-NEXT: ret
1103- ;
1104- ; RV64I-LABEL: select_0_6:
1105- ; RV64I: # %bb.0:
1106- ; RV64I-NEXT: srai a0, a0, 2
1107- ; RV64I-NEXT: srli a0, a0, 62
1108- ; RV64I-NEXT: slli a0, a0, 1
1109- ; RV64I-NEXT: ret
1110- ;
1111- ; RV64IFD-LABEL: select_0_6:
1112- ; RV64IFD: # %bb.0:
1113- ; RV64IFD-NEXT: srai a0, a0, 2
1114- ; RV64IFD-NEXT: srli a0, a0, 62
1115- ; RV64IFD-NEXT: slli a0, a0, 1
1116- ; RV64IFD-NEXT: ret
1083+ ; RV32-LABEL: select_0_6:
1084+ ; RV32: # %bb.0:
1085+ ; RV32-NEXT: srai a0, a0, 2
1086+ ; RV32-NEXT: srli a0, a0, 30
1087+ ; RV32-NEXT: slli a0, a0, 1
1088+ ; RV32-NEXT: ret
11171089;
1118- ; RV64ZICOND -LABEL: select_0_6:
1119- ; RV64ZICOND : # %bb.0:
1120- ; RV64ZICOND -NEXT: srli a0, a0, 63
1121- ; RV64ZICOND -NEXT: li a1, 6
1122- ; RV64ZICOND -NEXT: czero.eqz a0, a1, a0
1123- ; RV64ZICOND -NEXT: ret
1090+ ; RV64 -LABEL: select_0_6:
1091+ ; RV64 : # %bb.0:
1092+ ; RV64 -NEXT: srai a0, a0, 2
1093+ ; RV64 -NEXT: srli a0, a0, 62
1094+ ; RV64 -NEXT: slli a0, a0, 1
1095+ ; RV64 -NEXT: ret
11241096 %cmp = icmp sgt i32 %x , -1
11251097 %cond = select i1 %cmp , i32 0 , i32 6
11261098 ret i32 %cond
11271099}
11281100
11291101define i32 @select_6_0 (i32 signext %x ) {
1130- ; RV32I-LABEL: select_6_0:
1131- ; RV32I: # %bb.0:
1132- ; RV32I-NEXT: srli a0, a0, 31
1133- ; RV32I-NEXT: addi a0, a0, -1
1134- ; RV32I-NEXT: andi a0, a0, 6
1135- ; RV32I-NEXT: ret
1136- ;
1137- ; RV32IF-LABEL: select_6_0:
1138- ; RV32IF: # %bb.0:
1139- ; RV32IF-NEXT: srli a0, a0, 31
1140- ; RV32IF-NEXT: addi a0, a0, -1
1141- ; RV32IF-NEXT: andi a0, a0, 6
1142- ; RV32IF-NEXT: ret
1143- ;
1144- ; RV32ZICOND-LABEL: select_6_0:
1145- ; RV32ZICOND: # %bb.0:
1146- ; RV32ZICOND-NEXT: srli a0, a0, 31
1147- ; RV32ZICOND-NEXT: li a1, 6
1148- ; RV32ZICOND-NEXT: czero.nez a0, a1, a0
1149- ; RV32ZICOND-NEXT: ret
1150- ;
1151- ; RV64I-LABEL: select_6_0:
1152- ; RV64I: # %bb.0:
1153- ; RV64I-NEXT: srli a0, a0, 63
1154- ; RV64I-NEXT: addi a0, a0, -1
1155- ; RV64I-NEXT: andi a0, a0, 6
1156- ; RV64I-NEXT: ret
1157- ;
1158- ; RV64IFD-LABEL: select_6_0:
1159- ; RV64IFD: # %bb.0:
1160- ; RV64IFD-NEXT: srli a0, a0, 63
1161- ; RV64IFD-NEXT: addi a0, a0, -1
1162- ; RV64IFD-NEXT: andi a0, a0, 6
1163- ; RV64IFD-NEXT: ret
1102+ ; RV32-LABEL: select_6_0:
1103+ ; RV32: # %bb.0:
1104+ ; RV32-NEXT: srli a0, a0, 31
1105+ ; RV32-NEXT: addi a0, a0, -1
1106+ ; RV32-NEXT: andi a0, a0, 6
1107+ ; RV32-NEXT: ret
11641108;
1165- ; RV64ZICOND -LABEL: select_6_0:
1166- ; RV64ZICOND : # %bb.0:
1167- ; RV64ZICOND -NEXT: srli a0, a0, 63
1168- ; RV64ZICOND -NEXT: li a1, 6
1169- ; RV64ZICOND -NEXT: czero.nez a0, a1, a0
1170- ; RV64ZICOND -NEXT: ret
1109+ ; RV64 -LABEL: select_6_0:
1110+ ; RV64 : # %bb.0:
1111+ ; RV64 -NEXT: srli a0, a0, 63
1112+ ; RV64 -NEXT: addi a0, a0, -1
1113+ ; RV64 -NEXT: andi a0, a0, 6
1114+ ; RV64 -NEXT: ret
11711115 %cmp = icmp sgt i32 %x , -1
11721116 %cond = select i1 %cmp , i32 6 , i32 0
11731117 ret i32 %cond
11741118}
11751119
11761120define i32 @select_0_394 (i32 signext %x ) {
1177- ; RV32I-LABEL: select_0_394:
1178- ; RV32I: # %bb.0:
1179- ; RV32I-NEXT: srai a0, a0, 31
1180- ; RV32I-NEXT: andi a0, a0, 394
1181- ; RV32I-NEXT: ret
1182- ;
1183- ; RV32IF-LABEL: select_0_394:
1184- ; RV32IF: # %bb.0:
1185- ; RV32IF-NEXT: srai a0, a0, 31
1186- ; RV32IF-NEXT: andi a0, a0, 394
1187- ; RV32IF-NEXT: ret
1188- ;
1189- ; RV32ZICOND-LABEL: select_0_394:
1190- ; RV32ZICOND: # %bb.0:
1191- ; RV32ZICOND-NEXT: srli a0, a0, 31
1192- ; RV32ZICOND-NEXT: li a1, 394
1193- ; RV32ZICOND-NEXT: czero.eqz a0, a1, a0
1194- ; RV32ZICOND-NEXT: ret
1195- ;
1196- ; RV64I-LABEL: select_0_394:
1197- ; RV64I: # %bb.0:
1198- ; RV64I-NEXT: srai a0, a0, 63
1199- ; RV64I-NEXT: andi a0, a0, 394
1200- ; RV64I-NEXT: ret
1201- ;
1202- ; RV64IFD-LABEL: select_0_394:
1203- ; RV64IFD: # %bb.0:
1204- ; RV64IFD-NEXT: srai a0, a0, 63
1205- ; RV64IFD-NEXT: andi a0, a0, 394
1206- ; RV64IFD-NEXT: ret
1121+ ; RV32-LABEL: select_0_394:
1122+ ; RV32: # %bb.0:
1123+ ; RV32-NEXT: srai a0, a0, 31
1124+ ; RV32-NEXT: andi a0, a0, 394
1125+ ; RV32-NEXT: ret
12071126;
1208- ; RV64ZICOND-LABEL: select_0_394:
1209- ; RV64ZICOND: # %bb.0:
1210- ; RV64ZICOND-NEXT: srli a0, a0, 63
1211- ; RV64ZICOND-NEXT: li a1, 394
1212- ; RV64ZICOND-NEXT: czero.eqz a0, a1, a0
1213- ; RV64ZICOND-NEXT: ret
1127+ ; RV64-LABEL: select_0_394:
1128+ ; RV64: # %bb.0:
1129+ ; RV64-NEXT: srai a0, a0, 63
1130+ ; RV64-NEXT: andi a0, a0, 394
1131+ ; RV64-NEXT: ret
12141132 %cmp = icmp sgt i32 %x , -1
12151133 %cond = select i1 %cmp , i32 0 , i32 394
12161134 ret i32 %cond
12171135}
12181136
12191137define i32 @select_394_0 (i32 signext %x ) {
1220- ; RV32I-LABEL: select_394_0:
1221- ; RV32I: # %bb.0:
1222- ; RV32I-NEXT: srli a0, a0, 31
1223- ; RV32I-NEXT: addi a0, a0, -1
1224- ; RV32I-NEXT: andi a0, a0, 394
1225- ; RV32I-NEXT: ret
1226- ;
1227- ; RV32IF-LABEL: select_394_0:
1228- ; RV32IF: # %bb.0:
1229- ; RV32IF-NEXT: srli a0, a0, 31
1230- ; RV32IF-NEXT: addi a0, a0, -1
1231- ; RV32IF-NEXT: andi a0, a0, 394
1232- ; RV32IF-NEXT: ret
1233- ;
1234- ; RV32ZICOND-LABEL: select_394_0:
1235- ; RV32ZICOND: # %bb.0:
1236- ; RV32ZICOND-NEXT: srli a0, a0, 31
1237- ; RV32ZICOND-NEXT: li a1, 394
1238- ; RV32ZICOND-NEXT: czero.nez a0, a1, a0
1239- ; RV32ZICOND-NEXT: ret
1240- ;
1241- ; RV64I-LABEL: select_394_0:
1242- ; RV64I: # %bb.0:
1243- ; RV64I-NEXT: srli a0, a0, 63
1244- ; RV64I-NEXT: addi a0, a0, -1
1245- ; RV64I-NEXT: andi a0, a0, 394
1246- ; RV64I-NEXT: ret
1247- ;
1248- ; RV64IFD-LABEL: select_394_0:
1249- ; RV64IFD: # %bb.0:
1250- ; RV64IFD-NEXT: srli a0, a0, 63
1251- ; RV64IFD-NEXT: addi a0, a0, -1
1252- ; RV64IFD-NEXT: andi a0, a0, 394
1253- ; RV64IFD-NEXT: ret
1138+ ; RV32-LABEL: select_394_0:
1139+ ; RV32: # %bb.0:
1140+ ; RV32-NEXT: srli a0, a0, 31
1141+ ; RV32-NEXT: addi a0, a0, -1
1142+ ; RV32-NEXT: andi a0, a0, 394
1143+ ; RV32-NEXT: ret
12541144;
1255- ; RV64ZICOND -LABEL: select_394_0:
1256- ; RV64ZICOND : # %bb.0:
1257- ; RV64ZICOND -NEXT: srli a0, a0, 63
1258- ; RV64ZICOND -NEXT: li a1, 394
1259- ; RV64ZICOND -NEXT: czero.nez a0, a1, a0
1260- ; RV64ZICOND -NEXT: ret
1145+ ; RV64 -LABEL: select_394_0:
1146+ ; RV64 : # %bb.0:
1147+ ; RV64 -NEXT: srli a0, a0, 63
1148+ ; RV64 -NEXT: addi a0, a0, -1
1149+ ; RV64 -NEXT: andi a0, a0, 394
1150+ ; RV64 -NEXT: ret
12611151 %cmp = icmp sgt i32 %x , -1
12621152 %cond = select i1 %cmp , i32 394 , i32 0
12631153 ret i32 %cond
0 commit comments