@@ -215,7 +215,7 @@ class RVVBuiltin<string suffix, string prototype, string type_range,
215
215
// an automatic definition in header is emitted.
216
216
string HeaderCode = "";
217
217
218
- // Sub extension of vector spec. Currently only support Zvamo or Zvlsseg.
218
+ // Sub extension of vector spec. Currently only support Zvlsseg.
219
219
string RequiredExtension = "";
220
220
221
221
// Number of fields for Zvlsseg.
@@ -1257,36 +1257,6 @@ multiclass RVVIndexedSegStore<string op> {
1257
1257
}
1258
1258
}
1259
1259
1260
- multiclass RVVAMOBuiltinSet<bit has_signed = false, bit has_unsigned = false,
1261
- bit has_fp = false> {
1262
- defvar type_list = !if(has_fp, ["i","l","f","d"], ["i","l"]);
1263
- foreach type = type_list in
1264
- foreach eew_list = EEWList in {
1265
- defvar eew = eew_list[0];
1266
- defvar eew_index = eew_list[1];
1267
- let Name = NAME # "ei" # eew # "_" # "v",
1268
- IRName = NAME,
1269
- IRNameMask = NAME # "_mask",
1270
- HasMaskedOffOperand = false,
1271
- HasPolicy = false,
1272
- ManualCodegen = [{
1273
- // base, bindex, value, vl
1274
- IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[3]->getType()};
1275
- Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
1276
- }],
1277
- ManualCodegenMask = [{
1278
- std::rotate(Ops.begin(), Ops.begin() + 1, Ops.end() - 1);
1279
- IntrinsicTypes = {ResultType, Ops[1]->getType(), Ops[4]->getType()};
1280
- Ops[0] = Builder.CreateBitCast(Ops[0], ResultType->getPointerTo());
1281
- }] in {
1282
- if has_signed then
1283
- def : RVVBuiltin<"v", "vPe" # eew_index # "Uvv", type>;
1284
- if !and(!not(IsFloat<type>.val), has_unsigned) then
1285
- def : RVVBuiltin<"Uv", "UvPUe" # eew_index # "UvUv", type>;
1286
- }
1287
- }
1288
- }
1289
-
1290
1260
multiclass RVVPseudoUnaryBuiltin<string IR, string type_range> {
1291
1261
let Name = NAME,
1292
1262
IRName = IR,
@@ -1591,19 +1561,6 @@ defm : RVVIndexedSegStore<"vsuxseg">;
1591
1561
defm : RVVIndexedSegStore<"vsoxseg">;
1592
1562
}
1593
1563
1594
- // 8. Vector AMO Operations
1595
- let RequiredExtension = "Zvamo" in {
1596
- defm vamoswap : RVVAMOBuiltinSet< /* hasSigned */ true, /* hasUnsigned */ true, /* hasFP */ true>;
1597
- defm vamoadd : RVVAMOBuiltinSet< /* hasSigned */ true, /* hasUnsigned */ true>;
1598
- defm vamoxor : RVVAMOBuiltinSet< /* hasSigned */ true, /* hasUnsigned */ true>;
1599
- defm vamoand : RVVAMOBuiltinSet< /* hasSigned */ true, /* hasUnsigned */ true>;
1600
- defm vamoor : RVVAMOBuiltinSet< /* hasSigned */ true, /* hasUnsigned */ true>;
1601
- defm vamomin : RVVAMOBuiltinSet< /* hasSigned */ true>;
1602
- defm vamomax : RVVAMOBuiltinSet< /* hasSigned */ true>;
1603
- defm vamominu : RVVAMOBuiltinSet< /* hasSigned */ false, /* hasUnsigned */ true>;
1604
- defm vamomaxu : RVVAMOBuiltinSet< /* hasSigned */ false, /* hasUnsigned */ true>;
1605
- }
1606
-
1607
1564
// 12. Vector Integer Arithmetic Instructions
1608
1565
// 12.1. Vector Single-Width Integer Add and Subtract
1609
1566
defm vadd : RVVIntBinBuiltinSet;
0 commit comments