Skip to content

Commit 6b76dbc

Browse files
committed
fixup! Remove command line option
1 parent b10ff51 commit 6b76dbc

File tree

10 files changed

+25
-89
lines changed

10 files changed

+25
-89
lines changed

Diff for: clang/include/clang/Basic/CodeGenOptions.def

-3
Original file line numberDiff line numberDiff line change
@@ -464,9 +464,6 @@ ENUM_CODEGENOPT(ZeroCallUsedRegs, llvm::ZeroCallUsedRegs::ZeroCallUsedRegsKind,
464464
/// non-deleting destructors. (No effect on Microsoft ABI.)
465465
CODEGENOPT(CtorDtorReturnThis, 1, 0)
466466

467-
/// Specify the VLEN for VLS calling convention.
468-
CODEGENOPT(RISCVABIVLen, 17, 0)
469-
470467
/// FIXME: Make DebugOptions its own top-level .def file.
471468
#include "DebugOptions.def"
472469

Diff for: clang/include/clang/Driver/Options.td

-4
Original file line numberDiff line numberDiff line change
@@ -4950,10 +4950,6 @@ def mrvv_vector_bits_EQ : Joined<["-"], "mrvv-vector-bits=">, Group<m_Group>,
49504950
!eq(GlobalDocumentation.Program, "Flang") : "",
49514951
true: " The value will be reflected in __riscv_v_fixed_vlen preprocessor define"),
49524952
" (RISC-V only)")>;
4953-
def mriscv_abi_vlen_EQ : Joined<["-"], "mriscv-abi-vlen=">, Group<m_Group>,
4954-
Visibility<[ClangOption, CC1Option]>,
4955-
HelpText<"Specify the VLEN for VLS calling convention.">,
4956-
MarshallingInfoInt<CodeGenOpts<"RISCVABIVLen">>;
49574953
def munaligned_access : Flag<["-"], "munaligned-access">, Group<m_Group>,
49584954
HelpText<"Allow memory accesses to be unaligned (AArch32/MIPSr6 only)">;
49594955
def mno_unaligned_access : Flag<["-"], "mno-unaligned-access">, Group<m_Group>,

Diff for: clang/lib/CodeGen/CodeGenModule.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,7 @@ createTargetCodeGenInfo(CodeGenModule &CGM) {
234234
else if (ABIStr.ends_with("d"))
235235
ABIFLen = 64;
236236
bool EABI = ABIStr.ends_with("e");
237-
return createRISCVTargetCodeGenInfo(CGM, XLen, ABIFLen,
238-
CodeGenOpts.RISCVABIVLen, EABI);
237+
return createRISCVTargetCodeGenInfo(CGM, XLen, ABIFLen, EABI);
239238
}
240239

241240
case llvm::Triple::systemz: {

Diff for: clang/lib/CodeGen/TargetInfo.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@ createPPC64_SVR4_TargetCodeGenInfo(CodeGenModule &CGM, PPC64_SVR4_ABIKind Kind,
533533

534534
std::unique_ptr<TargetCodeGenInfo>
535535
createRISCVTargetCodeGenInfo(CodeGenModule &CGM, unsigned XLen, unsigned FLen,
536-
unsigned ABIVLen, bool EABI);
536+
bool EABI);
537537

538538
std::unique_ptr<TargetCodeGenInfo>
539539
createCommonSPIRTargetCodeGenInfo(CodeGenModule &CGM);

Diff for: clang/lib/CodeGen/Targets/RISCV.cpp

+20-30
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ class RISCVABIInfo : public DefaultABIInfo {
2626
// ISA might have a wider FLen than the selected ABI (e.g. an RV32IF target
2727
// with soft float ABI has FLen==0).
2828
unsigned FLen;
29-
unsigned ABIVLen;
3029
const int NumArgGPRs;
3130
const int NumArgFPRs;
3231
const bool EABI;
@@ -38,17 +37,17 @@ class RISCVABIInfo : public DefaultABIInfo {
3837

3938
public:
4039
RISCVABIInfo(CodeGen::CodeGenTypes &CGT, unsigned XLen, unsigned FLen,
41-
unsigned ABIVLen, bool EABI)
42-
: DefaultABIInfo(CGT), XLen(XLen), FLen(FLen), ABIVLen(ABIVLen),
40+
bool EABI)
41+
: DefaultABIInfo(CGT), XLen(XLen), FLen(FLen),
4342
NumArgGPRs(EABI ? 6 : 8), NumArgFPRs(FLen != 0 ? 8 : 0), EABI(EABI) {}
4443

4544
// DefaultABIInfo's classifyReturnType and classifyArgumentType are
4645
// non-virtual, but computeInfo is virtual, so we overload it.
4746
void computeInfo(CGFunctionInfo &FI) const override;
4847

4948
ABIArgInfo classifyArgumentType(QualType Ty, bool IsFixed, int &ArgGPRsLeft,
50-
int &ArgFPRsLeft, unsigned ArgABIVLen) const;
51-
ABIArgInfo classifyReturnType(QualType RetTy, unsigned ArgABIVLen) const;
49+
int &ArgFPRsLeft, unsigned ABIVLen) const;
50+
ABIArgInfo classifyReturnType(QualType RetTy, unsigned ABIVLen) const;
5251

5352
RValue EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,
5453
AggValueSlot Slot) const override;
@@ -64,7 +63,7 @@ class RISCVABIInfo : public DefaultABIInfo {
6463
llvm::Type *Field2Ty,
6564
CharUnits Field2Off) const;
6665

67-
ABIArgInfo coerceVLSVector(QualType Ty, unsigned ArgABIVLen = 0) const;
66+
ABIArgInfo coerceVLSVector(QualType Ty, unsigned ABIVLen = 0) const;
6867

6968
using ABIInfo::appendAttributeMangling;
7069
void appendAttributeMangling(TargetClonesAttr *Attr, unsigned Index,
@@ -113,18 +112,10 @@ void RISCVABIInfo::appendAttributeMangling(StringRef AttrStr,
113112
}
114113

115114
void RISCVABIInfo::computeInfo(CGFunctionInfo &FI) const {
116-
unsigned ArgABIVLen = 1 << FI.getExtInfo().getLog2RISCVABIVLen();
117-
// If ArgABIVLen is default value(2), try to set it to the value passed by
118-
// option if any, otherwise, set it to default value 128.
119-
// Note that ArgABIVLen == 1 means vector_cc is not enabled.
120-
if (ArgABIVLen == 2 && ABIVLen)
121-
ArgABIVLen = ABIVLen;
122-
else if (ArgABIVLen == 2)
123-
ArgABIVLen = 128;
124-
115+
unsigned ABIVLen = 1 << FI.getExtInfo().getLog2RISCVABIVLen();
125116
QualType RetTy = FI.getReturnType();
126117
if (!getCXXABI().classifyReturnType(FI))
127-
FI.getReturnInfo() = classifyReturnType(RetTy, ArgABIVLen);
118+
FI.getReturnInfo() = classifyReturnType(RetTy, ABIVLen);
128119

129120
// IsRetIndirect is true if classifyArgumentType indicated the value should
130121
// be passed indirect, or if the type size is a scalar greater than 2*XLen
@@ -151,7 +142,7 @@ void RISCVABIInfo::computeInfo(CGFunctionInfo &FI) const {
151142
for (auto &ArgInfo : FI.arguments()) {
152143
bool IsFixed = ArgNum < NumFixedArgs;
153144
ArgInfo.info = classifyArgumentType(ArgInfo.type, IsFixed, ArgGPRsLeft,
154-
ArgFPRsLeft, ArgABIVLen);
145+
ArgFPRsLeft, ABIVLen);
155146
ArgNum++;
156147
}
157148
}
@@ -373,7 +364,7 @@ ABIArgInfo RISCVABIInfo::coerceAndExpandFPCCEligibleStruct(
373364
// Fixed-length RVV vectors are represented as scalable vectors in function
374365
// args/return and must be coerced from fixed vectors.
375366
ABIArgInfo RISCVABIInfo::coerceVLSVector(QualType Ty,
376-
unsigned ArgABIVLen) const {
367+
unsigned ABIVLen) const {
377368
assert(Ty->isVectorType() && "expected vector type!");
378369

379370
const auto *VT = Ty->castAs<VectorType>();
@@ -405,7 +396,7 @@ ABIArgInfo RISCVABIInfo::coerceVLSVector(QualType Ty,
405396

406397
llvm::ScalableVectorType *ResType;
407398

408-
if (ArgABIVLen == 0) {
399+
if (ABIVLen == 0) {
409400
// The MinNumElts is simplified from equation:
410401
// NumElts / VScale =
411402
// (EltSize * NumElts / (VScale * RVVBitsPerBlock))
@@ -429,7 +420,7 @@ ABIArgInfo RISCVABIInfo::coerceVLSVector(QualType Ty,
429420
// The number of elements needs to be at least 1.
430421
ResType = llvm::ScalableVectorType::get(
431422
EltType,
432-
llvm::divideCeil(NumElts * llvm::RISCV::RVVBitsPerBlock, ArgABIVLen));
423+
llvm::divideCeil(NumElts * llvm::RISCV::RVVBitsPerBlock, ABIVLen));
433424
}
434425

435426
return ABIArgInfo::getDirect(ResType);
@@ -438,7 +429,7 @@ ABIArgInfo RISCVABIInfo::coerceVLSVector(QualType Ty,
438429
ABIArgInfo RISCVABIInfo::classifyArgumentType(QualType Ty, bool IsFixed,
439430
int &ArgGPRsLeft,
440431
int &ArgFPRsLeft,
441-
unsigned ArgABIVLen) const {
432+
unsigned ABIVLen) const {
442433
assert(ArgGPRsLeft <= NumArgGPRs && "Arg GPR tracking underflow");
443434
Ty = useFirstFieldIfTransparentUnion(Ty);
444435

@@ -548,10 +539,10 @@ ABIArgInfo RISCVABIInfo::classifyArgumentType(QualType Ty, bool IsFixed,
548539
VT->getVectorKind() == VectorKind::RVVFixedLengthMask_2 ||
549540
VT->getVectorKind() == VectorKind::RVVFixedLengthMask_4)
550541
return coerceVLSVector(Ty);
551-
if (VT->getVectorKind() == VectorKind::Generic && ArgABIVLen != 1)
542+
if (VT->getVectorKind() == VectorKind::Generic && ABIVLen != 1)
552543
// Generic vector without riscv_vls_cc should fall through and pass by
553544
// reference.
554-
return coerceVLSVector(Ty, ArgABIVLen);
545+
return coerceVLSVector(Ty, ABIVLen);
555546
}
556547

557548
// Aggregates which are <= 2*XLen will be passed in registers if possible,
@@ -576,7 +567,7 @@ ABIArgInfo RISCVABIInfo::classifyArgumentType(QualType Ty, bool IsFixed,
576567
}
577568

578569
ABIArgInfo RISCVABIInfo::classifyReturnType(QualType RetTy,
579-
unsigned ArgABIVLen) const {
570+
unsigned ABIVLen) const {
580571
if (RetTy->isVoidType())
581572
return ABIArgInfo::getIgnore();
582573

@@ -586,7 +577,7 @@ ABIArgInfo RISCVABIInfo::classifyReturnType(QualType RetTy,
586577
// The rules for return and argument types are the same, so defer to
587578
// classifyArgumentType.
588579
return classifyArgumentType(RetTy, /*IsFixed=*/true, ArgGPRsLeft, ArgFPRsLeft,
589-
ArgABIVLen);
580+
ABIVLen);
590581
}
591582

592583
RValue RISCVABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
@@ -625,9 +616,9 @@ namespace {
625616
class RISCVTargetCodeGenInfo : public TargetCodeGenInfo {
626617
public:
627618
RISCVTargetCodeGenInfo(CodeGen::CodeGenTypes &CGT, unsigned XLen,
628-
unsigned FLen, unsigned ABIVLen, bool EABI)
619+
unsigned FLen, bool EABI)
629620
: TargetCodeGenInfo(
630-
std::make_unique<RISCVABIInfo>(CGT, XLen, FLen, ABIVLen, EABI)) {
621+
std::make_unique<RISCVABIInfo>(CGT, XLen, FLen, EABI)) {
631622
SwiftInfo =
632623
std::make_unique<SwiftABIInfo>(CGT, /*SwiftErrorInRegister=*/false);
633624
}
@@ -659,8 +650,7 @@ class RISCVTargetCodeGenInfo : public TargetCodeGenInfo {
659650

660651
std::unique_ptr<TargetCodeGenInfo>
661652
CodeGen::createRISCVTargetCodeGenInfo(CodeGenModule &CGM, unsigned XLen,
662-
unsigned FLen, unsigned ABIVLen,
663-
bool EABI) {
653+
unsigned FLen, bool EABI) {
664654
return std::make_unique<RISCVTargetCodeGenInfo>(CGM.getTypes(), XLen, FLen,
665-
ABIVLen, EABI);
655+
EABI);
666656
}

Diff for: clang/lib/Driver/ToolChains/Arch/RISCV.cpp

-4
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,6 @@ void riscv::getRISCVTargetFeatures(const Driver &D, const llvm::Triple &Triple,
9595
CPUFastVectorUnaligned = true;
9696
}
9797

98-
if (Arg *A = Args.getLastArg(options::OPT_mriscv_abi_vlen_EQ))
99-
Features.push_back(
100-
Args.MakeArgString(Twine("+abi-vlen-") + A->getValue() + "b"));
101-
10298
// Handle features corresponding to "-ffixed-X" options
10399
#define RESERVE_REG(REG) \
104100
if (Args.hasArg(options::OPT_ffixed_##REG)) \

Diff for: clang/lib/Driver/ToolChains/Clang.cpp

-15
Original file line numberDiff line numberDiff line change
@@ -2203,21 +2203,6 @@ void Clang::AddRISCVTargetArgs(const ArgList &Args,
22032203
<< A->getSpelling() << Val;
22042204
}
22052205
}
2206-
2207-
if (Arg *A = Args.getLastArg(options::OPT_mriscv_abi_vlen_EQ)) {
2208-
StringRef ABIVLenStr = A->getValue();
2209-
unsigned ABIVLen;
2210-
const Driver &D = getToolChain().getDriver();
2211-
if (ABIVLenStr.getAsInteger(10, ABIVLen) || ABIVLen < 32 ||
2212-
ABIVLen > 65536 || !llvm::isPowerOf2_64(ABIVLen)) {
2213-
D.Diag(diag::err_drv_invalid_value)
2214-
<< A->getOption().getName() << ABIVLenStr;
2215-
return;
2216-
}
2217-
2218-
CmdArgs.push_back(
2219-
Args.MakeArgString(Twine("-mriscv-abi-vlen=") + A->getValue()));
2220-
}
22212206
}
22222207

22232208
void Clang::AddSparcTargetArgs(const ArgList &Args,

Diff for: clang/lib/Sema/SemaType.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -8035,9 +8035,9 @@ static bool handleFunctionTypeAttr(TypeProcessingState &state, ParsedAttr &attr,
80358035
Attr *CCAttr = getCCTypeAttr(S.Context, attr);
80368036

80378037
if (attr.getKind() == ParsedAttr::AT_RISCVVLSCC) {
8038-
// If the riscv_abi_vlen doesn't have any argument, we set set it to 2 to
8039-
// differentiate from functions without attribute.
8040-
unsigned ABIVLen = 2;
8038+
// If the riscv_abi_vlen doesn't have any argument, we set set it to default
8039+
// value 128.
8040+
unsigned ABIVLen = 128;
80418041
if (attr.getNumArgs() &&
80428042
!S.checkUInt32Argument(attr, attr.getArgAsExpr(0), ABIVLen))
80438043
return false;

Diff for: clang/test/CodeGen/RISCV/riscv-vector-callingconv-llvm-ir.c

-17
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@
55
// RUN: -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-LLVM-ZVE32X %s
66
// RUN: %clang_cc1 -std=c23 -triple riscv64 -target-feature +v \
77
// RUN: -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-LLVM %s
8-
// RUN: %clang_cc1 -triple riscv64 -mriscv-abi-vlen=256 -target-feature +v \
9-
// RUN: -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-LLVM-ABI-VLEN %s
10-
// RUN: %clang_cc1 -triple riscv64 -mriscv-abi-vlen=256 -target-feature +zve32x \
11-
// RUN: -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-LLVM-ABI-VLEN-ZVE32X %s
12-
// RUN: %clang_cc1 -std=c23 -triple riscv64 -mriscv-abi-vlen=256 -target-feature +v \
13-
// RUN: -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-LLVM-ABI-VLEN %s
148

159
#include <riscv_vector.h>
1610

@@ -42,45 +36,34 @@ vint32m1_t test_no_vector_cc_attr(vint32m1_t input, int32_t *base, size_t vl) {
4236
}
4337

4438
// CHECK-LLVM: define dso_local void @test_vls_no_cc(i128 noundef %arg.coerce)
45-
// CHECK-LLVM-ABI-VLEN: define dso_local void @test_vls_no_cc(i128 noundef %arg.coerce)
4639
void test_vls_no_cc(__attribute__((vector_size(16))) int arg) {}
4740

4841
// CHECK-LLVM: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen(<vscale x 2 x i32> noundef %arg.coerce)
49-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen(<vscale x 1 x i32> noundef %arg.coerce)
5042
void __attribute__((riscv_vls_cc)) test_vls_default_abi_vlen(__attribute__((vector_size(16))) int arg) {}
5143

5244
// CHECK-LLVM: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen_c23(<vscale x 2 x i32> noundef %arg.coerce)
53-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen_c23(<vscale x 1 x i32> noundef %arg.coerce)
5445
[[riscv::vls_cc]] void test_vls_default_abi_vlen_c23(__attribute__((vector_size(16))) int arg) {}
5546

5647
// CHECK-LLVM: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen_unsupported_feature(<vscale x 4 x i16> noundef %arg.coerce)
57-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen_unsupported_feature(<vscale x 2 x i16> noundef %arg.coerce)
5848
void __attribute__((riscv_vls_cc)) test_vls_default_abi_vlen_unsupported_feature(__attribute__((vector_size(16))) _Float16 arg) {}
5949

6050
// CHECK-LLVM: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen_c23_unsupported_feature(<vscale x 4 x i16> noundef %arg.coerce)
61-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen_c23_unsupported_feature(<vscale x 2 x i16> noundef %arg.coerce)
6251
[[riscv::vls_cc]] void test_vls_default_abi_vlen_c23_unsupported_feature(__attribute__((vector_size(16))) _Float16 arg) {}
6352

6453
// CHECK-LLVM-ZVE32X: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen_unsupported_feature_zve32x(<vscale x 2 x i32> noundef %arg.coerce)
65-
// CHECK-LLVM-ABI-VLEN-ZVE32X: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen_unsupported_feature_zve32x(<vscale x 1 x i32> noundef %arg.coerce)
6654
void __attribute__((riscv_vls_cc)) test_vls_default_abi_vlen_unsupported_feature_zve32x(__attribute__((vector_size(16))) float arg) {}
6755

6856
// CHECK-LLVM-ZVE32X: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen_c23_unsupported_feature_zve32x(<vscale x 2 x i32> noundef %arg.coerce)
69-
// CHECK-LLVM-ABI-VLEN-ZVE32X: define dso_local riscv_vls_cc void @test_vls_default_abi_vlen_c23_unsupported_feature_zve32x(<vscale x 1 x i32> noundef %arg.coerce)
7057
[[riscv::vls_cc]] void test_vls_default_abi_vlen_c23_unsupported_feature_zve32x(__attribute__((vector_size(16))) float arg) {}
7158

7259
// CHECK-LLVM: define dso_local riscv_vls_cc void @test_vls_256_abi_vlen(<vscale x 1 x i32> noundef %arg.coerce)
73-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @test_vls_256_abi_vlen(<vscale x 1 x i32> noundef %arg.coerce)
7460
void __attribute__((riscv_vls_cc(256))) test_vls_256_abi_vlen(__attribute__((vector_size(16))) int arg) {}
7561

7662
// CHECK-LLVM: define dso_local riscv_vls_cc void @test_vls_256_abi_vlen_c23(<vscale x 1 x i32> noundef %arg.coerce)
77-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @test_vls_256_abi_vlen_c23(<vscale x 1 x i32> noundef %arg.coerce)
7863
[[riscv::vls_cc(256)]] void test_vls_256_abi_vlen_c23(__attribute__((vector_size(16))) int arg) {}
7964

8065
// CHECK-LLVM: define dso_local riscv_vls_cc void @test_vls_least_element(<vscale x 1 x i32> noundef %arg.coerce)
81-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @test_vls_least_element(<vscale x 1 x i32> noundef %arg.coerce)
8266
void __attribute__((riscv_vls_cc(1024))) test_vls_least_element(__attribute__((vector_size(8))) int arg) {}
8367

8468
// CHECK-LLVM: define dso_local riscv_vls_cc void @test_vls_least_element_c23(<vscale x 1 x i32> noundef %arg.coerce)
85-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @test_vls_least_element_c23(<vscale x 1 x i32> noundef %arg.coerce)
8669
[[riscv::vls_cc(1024)]] void test_vls_least_element_c23(__attribute__((vector_size(8))) int arg) {}

Diff for: clang/test/CodeGen/RISCV/riscv-vector-callingconv-llvm-ir.cpp

-10
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33
// RUN: -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-LLVM %s
44
// RUN: %clang_cc1 -std=c++11 -triple riscv64 -target-feature +zve32x \
55
// RUN: -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-LLVM-ZVE32X %s
6-
// RUN: %clang_cc1 -std=c++11 -triple riscv64 -mriscv-abi-vlen=256 -target-feature +v \
7-
// RUN: -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-LLVM-ABI-VLEN %s
8-
// RUN: %clang_cc1 -std=c++11 -triple riscv64 -mriscv-abi-vlen=256 -target-feature +zve32x \
9-
// RUN: -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-LLVM-ABI-VLEN-ZVE32X %s
106

117
#include <riscv_vector.h>
128

@@ -38,25 +34,19 @@ vint32m1_t test_no_vector_cc_attr(vint32m1_t input, int32_t *base, size_t vl) {
3834
}
3935

4036
// CHECK-LLVM: define dso_local void @_Z14test_vls_no_ccDv4_i(i128 noundef %arg.coerce)
41-
// CHECK-LLVM-ABI-VLEN: define dso_local void @_Z14test_vls_no_ccDv4_i(i128 noundef %arg.coerce)
4237
void test_vls_no_cc(__attribute__((vector_size(16))) int arg) {}
4338

4439
// CHECK-LLVM: define dso_local riscv_vls_cc void @_Z25test_vls_default_abi_vlenDv4_i(<vscale x 2 x i32> noundef %arg.coerce)
45-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @_Z25test_vls_default_abi_vlenDv4_i(<vscale x 1 x i32> noundef %arg.coerce)
4640
[[riscv::vls_cc]] void test_vls_default_abi_vlen(__attribute__((vector_size(16))) int arg) {}
4741

4842
// CHECK-LLVM: define dso_local riscv_vls_cc void @_Z45test_vls_default_abi_vlen_unsupported_featureDv8_DF16_(<vscale x 4 x i16> noundef %arg.coerce)
49-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @_Z45test_vls_default_abi_vlen_unsupported_featureDv8_DF16_(<vscale x 2 x i16> noundef %arg.coerce)
5043
[[riscv::vls_cc]] void test_vls_default_abi_vlen_unsupported_feature(__attribute__((vector_size(16))) _Float16 arg) {}
5144

5245
// CHECK-LLVM-ZVE32X: define dso_local riscv_vls_cc void @_Z52test_vls_default_abi_vlen_unsupported_feature_zve32xDv4_f(<vscale x 2 x i32> noundef %arg.coerce)
53-
// CHECK-LLVM-ABI-VLEN-ZVE32X: define dso_local riscv_vls_cc void @_Z52test_vls_default_abi_vlen_unsupported_feature_zve32xDv4_f(<vscale x 1 x i32> noundef %arg.coerce)
5446
[[riscv::vls_cc]] void test_vls_default_abi_vlen_unsupported_feature_zve32x(__attribute__((vector_size(16))) float arg) {}
5547

5648
// CHECK-LLVM: define dso_local riscv_vls_cc void @_Z21test_vls_256_abi_vlenDv4_i(<vscale x 1 x i32> noundef %arg.coerce)
57-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @_Z21test_vls_256_abi_vlenDv4_i(<vscale x 1 x i32> noundef %arg.coerce)
5849
[[riscv::vls_cc(256)]] void test_vls_256_abi_vlen(__attribute__((vector_size(16))) int arg) {}
5950

6051
// CHECK-LLVM: define dso_local riscv_vls_cc void @_Z22test_vls_least_elementDv2_i(<vscale x 1 x i32> noundef %arg.coerce)
61-
// CHECK-LLVM-ABI-VLEN: define dso_local riscv_vls_cc void @_Z22test_vls_least_elementDv2_i(<vscale x 1 x i32> noundef %arg.coerce)
6252
[[riscv::vls_cc(1024)]] void test_vls_least_element(__attribute__((vector_size(8))) int arg) {}

0 commit comments

Comments
 (0)