Loading clang/lib/Basic/Targets/RISCV.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -136,6 +136,9 @@ void RISCVTargetInfo::getTargetDefines(const LangOptions &Opts, if (HasB) Builder.defineMacro("__riscv_bitmanip"); if (HasV) Builder.defineMacro("__riscv_vector"); if (HasZfh) Builder.defineMacro("__riscv_zfh"); } Loading @@ -153,6 +156,7 @@ bool RISCVTargetInfo::hasFeature(StringRef Feature) const { .Case("d", HasD) .Case("c", HasC) .Case("experimental-b", HasB) .Case("experimental-v", HasV) .Case("experimental-zfh", HasZfh) .Default(false); } Loading @@ -173,6 +177,8 @@ bool RISCVTargetInfo::handleTargetFeatures(std::vector<std::string> &Features, HasC = true; else if (Feature == "+experimental-b") HasB = true; else if (Feature == "+experimental-v") HasV = true; else if (Feature == "+experimental-zfh") HasZfh = true; } Loading clang/lib/Basic/Targets/RISCV.h +2 −1 Original line number Diff line number Diff line Loading @@ -31,12 +31,13 @@ protected: bool HasD; bool HasC; bool HasB; bool HasV; bool HasZfh; public: RISCVTargetInfo(const llvm::Triple &Triple, const TargetOptions &) : TargetInfo(Triple), HasM(false), HasA(false), HasF(false), HasD(false), HasC(false), HasB(false), HasZfh(false) { HasC(false), HasB(false), HasV(false), HasZfh(false) { LongDoubleWidth = 128; LongDoubleAlign = 128; LongDoubleFormat = &llvm::APFloat::IEEEquad(); Loading clang/test/Preprocessor/riscv-target-features.c +8 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,14 @@ // CHECK-DOUBLE-NOT: __riscv_float_abi_soft // CHECK-DOUBLE-NOT: __riscv_float_abi_single // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \ // RUN: -march=rv32iv0p9 -x c -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \ // RUN: -march=rv64iv0p9 -x c -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s // CHECK-V-EXT: __riscv_vector 1 // // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions -march=rv32izfh0p1 -x c -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZFH-EXT %s // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions -march=rv64izfh0p1 -x c -E -dM %s \ Loading Loading
clang/lib/Basic/Targets/RISCV.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -136,6 +136,9 @@ void RISCVTargetInfo::getTargetDefines(const LangOptions &Opts, if (HasB) Builder.defineMacro("__riscv_bitmanip"); if (HasV) Builder.defineMacro("__riscv_vector"); if (HasZfh) Builder.defineMacro("__riscv_zfh"); } Loading @@ -153,6 +156,7 @@ bool RISCVTargetInfo::hasFeature(StringRef Feature) const { .Case("d", HasD) .Case("c", HasC) .Case("experimental-b", HasB) .Case("experimental-v", HasV) .Case("experimental-zfh", HasZfh) .Default(false); } Loading @@ -173,6 +177,8 @@ bool RISCVTargetInfo::handleTargetFeatures(std::vector<std::string> &Features, HasC = true; else if (Feature == "+experimental-b") HasB = true; else if (Feature == "+experimental-v") HasV = true; else if (Feature == "+experimental-zfh") HasZfh = true; } Loading
clang/lib/Basic/Targets/RISCV.h +2 −1 Original line number Diff line number Diff line Loading @@ -31,12 +31,13 @@ protected: bool HasD; bool HasC; bool HasB; bool HasV; bool HasZfh; public: RISCVTargetInfo(const llvm::Triple &Triple, const TargetOptions &) : TargetInfo(Triple), HasM(false), HasA(false), HasF(false), HasD(false), HasC(false), HasB(false), HasZfh(false) { HasC(false), HasB(false), HasV(false), HasZfh(false) { LongDoubleWidth = 128; LongDoubleAlign = 128; LongDoubleFormat = &llvm::APFloat::IEEEquad(); Loading
clang/test/Preprocessor/riscv-target-features.c +8 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,14 @@ // CHECK-DOUBLE-NOT: __riscv_float_abi_soft // CHECK-DOUBLE-NOT: __riscv_float_abi_single // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \ // RUN: -march=rv32iv0p9 -x c -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \ // RUN: -march=rv64iv0p9 -x c -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s // CHECK-V-EXT: __riscv_vector 1 // // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions -march=rv32izfh0p1 -x c -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZFH-EXT %s // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions -march=rv64izfh0p1 -x c -E -dM %s \ Loading