Skip to content

Commit 6c6abb1

Browse files
committed
[RISCV] Remove Zvamo C intrinsics and builtins.
Zvamo is not part of the 1.0 V spec. Remove the intrinsics for now. This helps reduce clang binary size and lit test time. Reviewed By: HsiangKai Differential Revision: https://reviews.llvm.org/D111692
1 parent c16655f commit 6c6abb1

File tree

16 files changed

+2
-21450
lines changed

16 files changed

+2
-21450
lines changed

clang/include/clang/Basic/riscv_vector.td

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ class RVVBuiltin<string suffix, string prototype, string type_range,
215215
// an automatic definition in header is emitted.
216216
string HeaderCode = "";
217217

218-
// Sub extension of vector spec. Currently only support Zvamo or Zvlsseg.
218+
// Sub extension of vector spec. Currently only support Zvlsseg.
219219
string RequiredExtension = "";
220220

221221
// Number of fields for Zvlsseg.
@@ -1257,36 +1257,6 @@ multiclass RVVIndexedSegStore<string op> {
12571257
}
12581258
}
12591259

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-
12901260
multiclass RVVPseudoUnaryBuiltin<string IR, string type_range> {
12911261
let Name = NAME,
12921262
IRName = IR,
@@ -1591,19 +1561,6 @@ defm : RVVIndexedSegStore<"vsuxseg">;
15911561
defm : RVVIndexedSegStore<"vsoxseg">;
15921562
}
15931563

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-
16071564
// 12. Vector Integer Arithmetic Instructions
16081565
// 12.1. Vector Single-Width Integer Add and Subtract
16091566
defm vadd : RVVIntBinBuiltinSet;

clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamoadd.c

Lines changed: 0 additions & 1406 deletions
This file was deleted.

clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamoand.c

Lines changed: 0 additions & 1406 deletions
This file was deleted.

clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamomax.c

Lines changed: 0 additions & 1406 deletions
This file was deleted.

clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamomin.c

Lines changed: 0 additions & 1406 deletions
This file was deleted.

clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamoor.c

Lines changed: 0 additions & 1406 deletions
This file was deleted.

clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamoswap.c

Lines changed: 0 additions & 2421 deletions
This file was deleted.

clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vamoxor.c

Lines changed: 0 additions & 1406 deletions
This file was deleted.

clang/test/CodeGen/RISCV/rvv-intrinsics/vamoadd.c

Lines changed: 0 additions & 1406 deletions
This file was deleted.

clang/test/CodeGen/RISCV/rvv-intrinsics/vamoand.c

Lines changed: 0 additions & 1406 deletions
This file was deleted.

0 commit comments

Comments
 (0)