https://github.com/4vtomat updated https://github.com/llvm/llvm-project/pull/91556
>From 062d7d5017b01fb3afbaffe1a34487cfe36288d2 Mon Sep 17 00:00:00 2001 From: Brandon Wu <brandon...@sifive.com> Date: Wed, 8 May 2024 21:43:07 -0700 Subject: [PATCH 1/3] [RISCV] Bump Zaamo and Zalrsc to version 1.0 The ratified information can be found here: https://wiki.riscv.org/display/HOME/Ratified+Extensions --- .../test/Preprocessor/riscv-target-features.c | 20 +++++++++---------- llvm/lib/Target/RISCV/RISCVFeatures.td | 8 ++++---- llvm/test/CodeGen/RISCV/attributes.ll | 16 +++++++-------- llvm/test/MC/RISCV/rv32zaamo-invalid.s | 2 +- llvm/test/MC/RISCV/rv32zaamo-valid.s | 12 +++++------ llvm/test/MC/RISCV/rv32zalrsc-invalid.s | 2 +- llvm/test/MC/RISCV/rv32zalrsc-valid.s | 12 +++++------ llvm/test/MC/RISCV/rv64zaamo-invalid.s | 2 +- llvm/test/MC/RISCV/rv64zaamo-valid.s | 8 ++++---- llvm/test/MC/RISCV/rv64zalrsc-invalid.s | 2 +- llvm/test/MC/RISCV/rv64zalrsc-valid.s | 8 ++++---- .../TargetParser/RISCVISAInfoTest.cpp | 4 ++-- 12 files changed, 48 insertions(+), 48 deletions(-) diff --git a/clang/test/Preprocessor/riscv-target-features.c b/clang/test/Preprocessor/riscv-target-features.c index 913093bb51db6..ead9ac9b4063f 100644 --- a/clang/test/Preprocessor/riscv-target-features.c +++ b/clang/test/Preprocessor/riscv-target-features.c @@ -1554,13 +1554,13 @@ // CHECK-ZVKT-EXT: __riscv_zvkt 1000000{{$}} // Experimental extensions -// RUN: %clang --target=riscv32 -menable-experimental-extensions \ -// RUN: -march=rv32i_zaamo0p2 -E -dM %s \ +// RUN: %clang --target=riscv32 \ +// RUN: -march=rv32i_zaamo1p0 -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZAAMO-EXT %s -// RUN: %clang --target=riscv64 -menable-experimental-extensions \ -// RUN: -march=rv64i_zaamo0p2 -E -dM %s \ +// RUN: %clang --target=riscv64 \ +// RUN: -march=rv64i_zaamo1p0 -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZAAMO-EXT %s -// CHECK-ZAAMO-EXT: __riscv_zaamo 2000{{$}} +// CHECK-ZAAMO-EXT: __riscv_zaamo 1000000{{$}} // RUN: %clang --target=riscv32 -menable-experimental-extensions \ // RUN: -march=rv32ia_zabha1p0 -E -dM %s \ @@ -1578,13 +1578,13 @@ // RUN: -o - | FileCheck --check-prefix=CHECK-ZALASR-EXT %s // CHECK-ZALASR-EXT: __riscv_zalasr 1000{{$}} -// RUN: %clang --target=riscv32 -menable-experimental-extensions \ -// RUN: -march=rv32i_zalrsc0p2 -E -dM %s \ +// RUN: %clang --target=riscv32 \ +// RUN: -march=rv32i_zalrsc1p0 -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZALRSC-EXT %s -// RUN: %clang --target=riscv64 -menable-experimental-extensions \ -// RUN: -march=rv64i_zalrsc0p2 -E -dM %s \ +// RUN: %clang --target=riscv64 \ +// RUN: -march=rv64i_zalrsc1p0 -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZALRSC-EXT %s -// CHECK-ZALRSC-EXT: __riscv_zalrsc 2000{{$}} +// CHECK-ZALRSC-EXT: __riscv_zalrsc 1000000{{$}} // RUN: %clang --target=riscv32 -menable-experimental-extensions \ // RUN: -march=rv32izfbfmin1p0 -E -dM %s \ diff --git a/llvm/lib/Target/RISCV/RISCVFeatures.td b/llvm/lib/Target/RISCV/RISCVFeatures.td index 89e1214f469da..b099496d18388 100644 --- a/llvm/lib/Target/RISCV/RISCVFeatures.td +++ b/llvm/lib/Target/RISCV/RISCVFeatures.td @@ -211,8 +211,8 @@ def FeatureStdExtZa128rs : RISCVExtension<"za128rs", 1, 0, "'Za128rs' (Reservation Set Size of at Most 128 Bytes)">; def FeatureStdExtZaamo - : RISCVExperimentalExtension<"zaamo", 0, 2, - "'Zaamo' (Atomic Memory Operations)">; + : RISCVExtension<"zaamo", 1, 0, + "'Zaamo' (Atomic Memory Operations)">; def HasStdExtAOrZaamo : Predicate<"Subtarget->hasStdExtA() || Subtarget->hasStdExtZaamo()">, AssemblerPredicate<(any_of FeatureStdExtA, FeatureStdExtZaamo), @@ -242,8 +242,8 @@ def HasStdExtZalasr : Predicate<"Subtarget->hasStdExtZalasr()">, "'Zalasr' (Load-Acquire and Store-Release Instructions)">; def FeatureStdExtZalrsc - : RISCVExperimentalExtension<"zalrsc", 0, 2, - "'Zalrsc' (Load-Reserved/Store-Conditional)">; + : RISCVExtension<"zalrsc", 1, 0, + "'Zalrsc' (Load-Reserved/Store-Conditional)">; def HasStdExtAOrZalrsc : Predicate<"Subtarget->hasStdExtA() || Subtarget->hasStdExtZalrsc()">, AssemblerPredicate<(any_of FeatureStdExtA, FeatureStdExtZalrsc), diff --git a/llvm/test/CodeGen/RISCV/attributes.ll b/llvm/test/CodeGen/RISCV/attributes.ll index 8f49f6648ad28..9fdd842e5dd37 100644 --- a/llvm/test/CodeGen/RISCV/attributes.ll +++ b/llvm/test/CodeGen/RISCV/attributes.ll @@ -112,10 +112,10 @@ ; RUN: llc -mtriple=riscv32 -mattr=+experimental-zfbfmin %s -o - | FileCheck --check-prefixes=CHECK,RV32ZFBFMIN %s ; RUN: llc -mtriple=riscv32 -mattr=+experimental-zvfbfmin %s -o - | FileCheck --check-prefixes=CHECK,RV32ZVFBFMIN %s ; RUN: llc -mtriple=riscv32 -mattr=+experimental-zvfbfwma %s -o - | FileCheck --check-prefixes=CHECK,RV32ZVFBFWMA %s -; RUN: llc -mtriple=riscv32 -mattr=+experimental-zaamo %s -o - | FileCheck --check-prefix=RV32ZAAMO %s +; RUN: llc -mtriple=riscv32 -mattr=+zaamo %s -o - | FileCheck --check-prefix=RV32ZAAMO %s ; RUN: llc -mtriple=riscv32 -mattr=+a,zacas %s -o - | FileCheck --check-prefix=RV32ZACAS %s ; RUN: llc -mtriple=riscv32 -mattr=+experimental-zalasr %s -o - | FileCheck --check-prefix=RV32ZALASR %s -; RUN: llc -mtriple=riscv32 -mattr=+experimental-zalrsc %s -o - | FileCheck --check-prefix=RV32ZALRSC %s +; RUN: llc -mtriple=riscv32 -mattr=+zalrsc %s -o - | FileCheck --check-prefix=RV32ZALRSC %s ; RUN: llc -mtriple=riscv32 -mattr=+zama16b %s -o - | FileCheck --check-prefixes=CHECK,RV32ZAMA16B %s ; RUN: llc -mtriple=riscv32 -mattr=+experimental-zicfilp %s -o - | FileCheck --check-prefix=RV32ZICFILP %s ; RUN: llc -mtriple=riscv32 -mattr=+a,+experimental-zabha %s -o - | FileCheck --check-prefix=RV32ZABHA %s @@ -245,10 +245,10 @@ ; RUN: llc -mtriple=riscv64 -mattr=+experimental-zfbfmin %s -o - | FileCheck --check-prefixes=CHECK,RV64ZFBFMIN %s ; RUN: llc -mtriple=riscv64 -mattr=+experimental-zvfbfmin %s -o - | FileCheck --check-prefixes=CHECK,RV64ZVFBFMIN %s ; RUN: llc -mtriple=riscv64 -mattr=+experimental-zvfbfwma %s -o - | FileCheck --check-prefixes=CHECK,RV64ZVFBFWMA %s -; RUN: llc -mtriple=riscv64 -mattr=+experimental-zaamo %s -o - | FileCheck --check-prefix=RV64ZAAMO %s +; RUN: llc -mtriple=riscv64 -mattr=+zaamo %s -o - | FileCheck --check-prefix=RV64ZAAMO %s ; RUN: llc -mtriple=riscv64 -mattr=+a,zacas %s -o - | FileCheck --check-prefix=RV64ZACAS %s ; RUN: llc -mtriple=riscv64 -mattr=+experimental-zalasr %s -o - | FileCheck --check-prefix=RV64ZALASR %s -; RUN: llc -mtriple=riscv64 -mattr=+experimental-zalrsc %s -o - | FileCheck --check-prefix=RV64ZALRSC %s +; RUN: llc -mtriple=riscv64 -mattr=+zalrsc %s -o - | FileCheck --check-prefix=RV64ZALRSC %s ; RUN: llc -mtriple=riscv64 -mattr=+experimental-zicfilp %s -o - | FileCheck --check-prefix=RV64ZICFILP %s ; RUN: llc -mtriple=riscv64 -mattr=+a,+experimental-zabha %s -o - | FileCheck --check-prefix=RV64ZABHA %s ; RUN: llc -mtriple=riscv64 -mattr=+experimental-ssnpm %s -o - | FileCheck --check-prefix=RV64SSNPM %s @@ -384,10 +384,10 @@ ; RV32ZFBFMIN: .attribute 5, "rv32i2p1_f2p2_zicsr2p0_zfbfmin1p0" ; RV32ZVFBFMIN: .attribute 5, "rv32i2p1_f2p2_zicsr2p0_zve32f1p0_zve32x1p0_zvfbfmin1p0_zvl32b1p0" ; RV32ZVFBFWMA: .attribute 5, "rv32i2p1_f2p2_zicsr2p0_zfbfmin1p0_zve32f1p0_zve32x1p0_zvfbfmin1p0_zvfbfwma1p0_zvl32b1p0" -; RV32ZAAMO: .attribute 5, "rv32i2p1_zaamo0p2" +; RV32ZAAMO: .attribute 5, "rv32i2p1_zaamo1p0" ; RV32ZACAS: .attribute 5, "rv32i2p1_a2p1_zacas1p0" ; RV32ZALASR: .attribute 5, "rv32i2p1_zalasr0p1" -; RV32ZALRSC: .attribute 5, "rv32i2p1_zalrsc0p2" +; RV32ZALRSC: .attribute 5, "rv32i2p1_zalrsc1p0" ; RV32ZAMA16B: .attribute 5, "rv32i2p1_zama16b1p0" ; RV32ZICFILP: .attribute 5, "rv32i2p1_zicfilp0p4" ; RV32ZABHA: .attribute 5, "rv32i2p1_a2p1_zabha1p0" @@ -516,10 +516,10 @@ ; RV64ZFBFMIN: .attribute 5, "rv64i2p1_f2p2_zicsr2p0_zfbfmin1p0" ; RV64ZVFBFMIN: .attribute 5, "rv64i2p1_f2p2_zicsr2p0_zve32f1p0_zve32x1p0_zvfbfmin1p0_zvl32b1p0" ; RV64ZVFBFWMA: .attribute 5, "rv64i2p1_f2p2_zicsr2p0_zfbfmin1p0_zve32f1p0_zve32x1p0_zvfbfmin1p0_zvfbfwma1p0_zvl32b1p0" -; RV64ZAAMO: .attribute 5, "rv64i2p1_zaamo0p2" +; RV64ZAAMO: .attribute 5, "rv64i2p1_zaamo1p0" ; RV64ZACAS: .attribute 5, "rv64i2p1_a2p1_zacas1p0" ; RV64ZALASR: .attribute 5, "rv64i2p1_zalasr0p1" -; RV64ZALRSC: .attribute 5, "rv64i2p1_zalrsc0p2" +; RV64ZALRSC: .attribute 5, "rv64i2p1_zalrsc1p0" ; RV64ZICFILP: .attribute 5, "rv64i2p1_zicfilp0p4" ; RV64ZABHA: .attribute 5, "rv64i2p1_a2p1_zabha1p0" ; RV64SSNPM: .attribute 5, "rv64i2p1_ssnpm0p8" diff --git a/llvm/test/MC/RISCV/rv32zaamo-invalid.s b/llvm/test/MC/RISCV/rv32zaamo-invalid.s index fb4dab4542d6b..984a0d61e2d09 100644 --- a/llvm/test/MC/RISCV/rv32zaamo-invalid.s +++ b/llvm/test/MC/RISCV/rv32zaamo-invalid.s @@ -1,5 +1,5 @@ # RUN: not llvm-mc -triple riscv32 -mattr=+a < %s 2>&1 | FileCheck %s -# RUN: not llvm-mc -triple riscv32 -mattr=+experimental-zaamo < %s 2>&1 | FileCheck %s +# RUN: not llvm-mc -triple riscv32 -mattr=+zaamo < %s 2>&1 | FileCheck %s # Final operand must have parentheses amoswap.w a1, a2, a3 # CHECK: :[[@LINE]]:19: error: expected '(' or optional integer offset diff --git a/llvm/test/MC/RISCV/rv32zaamo-valid.s b/llvm/test/MC/RISCV/rv32zaamo-valid.s index f6b5799b46f86..d9ba6ef0240b4 100644 --- a/llvm/test/MC/RISCV/rv32zaamo-valid.s +++ b/llvm/test/MC/RISCV/rv32zaamo-valid.s @@ -8,15 +8,15 @@ # RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+a < %s \ # RUN: | llvm-objdump --mattr=+a -M no-aliases -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-zaamo -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+zaamo -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-zaamo -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+zaamo -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+experimental-zaamo < %s \ -# RUN: | llvm-objdump --mattr=+experimental-zaamo -M no-aliases -d -r - \ +# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+zaamo < %s \ +# RUN: | llvm-objdump --mattr=+zaamo -M no-aliases -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+experimental-zaamo < %s \ -# RUN: | llvm-objdump --mattr=+experimental-zaamo -M no-aliases -d -r - \ +# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+zaamo < %s \ +# RUN: | llvm-objdump --mattr=+zaamo -M no-aliases -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s # CHECK-ASM-AND-OBJ: amoswap.w a4, ra, (s0) diff --git a/llvm/test/MC/RISCV/rv32zalrsc-invalid.s b/llvm/test/MC/RISCV/rv32zalrsc-invalid.s index 9233c978f033a..b1eb982a9763d 100644 --- a/llvm/test/MC/RISCV/rv32zalrsc-invalid.s +++ b/llvm/test/MC/RISCV/rv32zalrsc-invalid.s @@ -1,5 +1,5 @@ # RUN: not llvm-mc -triple riscv32 -mattr=+a < %s 2>&1 | FileCheck %s -# RUN: not llvm-mc -triple riscv32 -mattr=+experimental-zalrsc < %s 2>&1 | FileCheck %s +# RUN: not llvm-mc -triple riscv32 -mattr=+zalrsc < %s 2>&1 | FileCheck %s # Final operand must have parentheses lr.w a4, a5 # CHECK: :[[@LINE]]:10: error: expected '(' or optional integer offset diff --git a/llvm/test/MC/RISCV/rv32zalrsc-valid.s b/llvm/test/MC/RISCV/rv32zalrsc-valid.s index f59a4df0d6676..f84c0fd62f690 100644 --- a/llvm/test/MC/RISCV/rv32zalrsc-valid.s +++ b/llvm/test/MC/RISCV/rv32zalrsc-valid.s @@ -8,15 +8,15 @@ # RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+a < %s \ # RUN: | llvm-objdump --mattr=+a -M no-aliases -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-zalrsc -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+zalrsc -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-zalrsc -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+zalrsc -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+experimental-zalrsc < %s \ -# RUN: | llvm-objdump --mattr=+experimental-zalrsc -M no-aliases -d -r - \ +# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+zalrsc < %s \ +# RUN: | llvm-objdump --mattr=+zalrsc -M no-aliases -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+experimental-zalrsc < %s \ -# RUN: | llvm-objdump --mattr=+experimental-zalrsc -M no-aliases -d -r - \ +# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+zalrsc < %s \ +# RUN: | llvm-objdump --mattr=+zalrsc -M no-aliases -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s # CHECK-ASM-AND-OBJ: lr.w t0, (t1) diff --git a/llvm/test/MC/RISCV/rv64zaamo-invalid.s b/llvm/test/MC/RISCV/rv64zaamo-invalid.s index e00c1ec7bed72..cb219a79bc7ee 100644 --- a/llvm/test/MC/RISCV/rv64zaamo-invalid.s +++ b/llvm/test/MC/RISCV/rv64zaamo-invalid.s @@ -1,5 +1,5 @@ # RUN: not llvm-mc -triple riscv64 -mattr=+a < %s 2>&1 | FileCheck %s -# RUN: not llvm-mc -triple riscv64 -mattr=+experimental-zaamo < %s 2>&1 | FileCheck %s +# RUN: not llvm-mc -triple riscv64 -mattr=+zaamo < %s 2>&1 | FileCheck %s # Final operand must have parentheses amoswap.d a1, a2, a3 # CHECK: :[[@LINE]]:19: error: expected '(' or optional integer offset diff --git a/llvm/test/MC/RISCV/rv64zaamo-valid.s b/llvm/test/MC/RISCV/rv64zaamo-valid.s index 51493b97c8752..96d3e619b4c1a 100644 --- a/llvm/test/MC/RISCV/rv64zaamo-valid.s +++ b/llvm/test/MC/RISCV/rv64zaamo-valid.s @@ -7,13 +7,13 @@ # RUN: not llvm-mc -triple riscv32 -mattr=+a < %s 2>&1 \ # RUN: | FileCheck -check-prefix=CHECK-RV32 %s # -# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-zaamo -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+zaamo -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+experimental-zaamo < %s \ -# RUN: | llvm-objdump --mattr=+experimental-zaamo -M no-aliases -d -r - \ +# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+zaamo < %s \ +# RUN: | llvm-objdump --mattr=+zaamo -M no-aliases -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s # -# RUN: not llvm-mc -triple riscv32 -mattr=+experimental-zaamo < %s 2>&1 \ +# RUN: not llvm-mc -triple riscv32 -mattr=+zaamo < %s 2>&1 \ # RUN: | FileCheck -check-prefix=CHECK-RV32 %s # CHECK-ASM-AND-OBJ: amoswap.d a4, ra, (s0) diff --git a/llvm/test/MC/RISCV/rv64zalrsc-invalid.s b/llvm/test/MC/RISCV/rv64zalrsc-invalid.s index e2ad2fc49139c..4a9d55e752f06 100644 --- a/llvm/test/MC/RISCV/rv64zalrsc-invalid.s +++ b/llvm/test/MC/RISCV/rv64zalrsc-invalid.s @@ -1,5 +1,5 @@ # RUN: not llvm-mc -triple riscv64 -mattr=+a < %s 2>&1 | FileCheck %s -# RUN: not llvm-mc -triple riscv64 -mattr=+experimental-zalrsc < %s 2>&1 | FileCheck %s +# RUN: not llvm-mc -triple riscv64 -mattr=+zalrsc < %s 2>&1 | FileCheck %s # Final operand must have parentheses lr.d a4, a5 # CHECK: :[[@LINE]]:10: error: expected '(' or optional integer offset diff --git a/llvm/test/MC/RISCV/rv64zalrsc-valid.s b/llvm/test/MC/RISCV/rv64zalrsc-valid.s index 5f4437250d9db..2bbde96b6e074 100644 --- a/llvm/test/MC/RISCV/rv64zalrsc-valid.s +++ b/llvm/test/MC/RISCV/rv64zalrsc-valid.s @@ -7,13 +7,13 @@ # RUN: not llvm-mc -triple riscv32 -mattr=+a < %s 2>&1 \ # RUN: | FileCheck -check-prefix=CHECK-RV32 %s # -# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-zalrsc -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+zalrsc -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+experimental-zalrsc < %s \ -# RUN: | llvm-objdump --mattr=+experimental-zalrsc -M no-aliases -d -r - \ +# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+zalrsc < %s \ +# RUN: | llvm-objdump --mattr=+zalrsc -M no-aliases -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s # -# RUN: not llvm-mc -triple riscv32 -mattr=+experimental-zalrsc < %s 2>&1 \ +# RUN: not llvm-mc -triple riscv32 -mattr=+zalrsc < %s 2>&1 \ # RUN: | FileCheck -check-prefix=CHECK-RV32 %s # CHECK-ASM-AND-OBJ: lr.d t0, (t1) diff --git a/llvm/unittests/TargetParser/RISCVISAInfoTest.cpp b/llvm/unittests/TargetParser/RISCVISAInfoTest.cpp index f9e386a85fea8..6368ff2999d83 100644 --- a/llvm/unittests/TargetParser/RISCVISAInfoTest.cpp +++ b/llvm/unittests/TargetParser/RISCVISAInfoTest.cpp @@ -863,7 +863,9 @@ R"(All available -march extensions for RISC-V zmmul 1.0 za128rs 1.0 za64rs 1.0 + zaamo 1.0 zacas 1.0 + zalrsc 1.0 zama16b 1.0 zawrs 1.0 zfa 1.0 @@ -989,10 +991,8 @@ R"(All available -march extensions for RISC-V Experimental extensions zicfilp 0.4 This is a long dummy description zicfiss 0.4 - zaamo 0.2 zabha 1.0 zalasr 0.1 - zalrsc 0.2 zfbfmin 1.0 ztso 0.1 zvfbfmin 1.0 >From e4440a34cd5ae3646d6a22538a40b41626b019a9 Mon Sep 17 00:00:00 2001 From: Brandon Wu <brandon...@sifive.com> Date: Wed, 8 May 2024 21:57:06 -0700 Subject: [PATCH 2/3] fixup! [RISCV] Update RISCVUsage.rst and ReleaseNotes.rst --- llvm/docs/RISCVUsage.rst | 5 ++--- llvm/docs/ReleaseNotes.rst | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/llvm/docs/RISCVUsage.rst b/llvm/docs/RISCVUsage.rst index ff08c9d345d5f..5ecee2a480f7d 100644 --- a/llvm/docs/RISCVUsage.rst +++ b/llvm/docs/RISCVUsage.rst @@ -119,7 +119,9 @@ on support follow. ``V`` Supported ``Za128rs`` Supported (`See note <#riscv-profiles-extensions-note>`__) ``Za64rs`` Supported (`See note <#riscv-profiles-extensions-note>`__) + ``Zaamo`` Assembly Support ``Zacas`` Supported (`See note <#riscv-zacas-note>`__) + ``Zalrsc`` Assembly Support ``Zama16b`` Supported (`See note <#riscv-profiles-extensions-note>`__) ``Zawrs`` Assembly Support ``Zba`` Supported @@ -275,9 +277,6 @@ The primary goal of experimental support is to assist in the process of ratifica ``experimental-ztso`` LLVM implements the `v0.1 proposed specification <https://github.com/riscv/riscv-isa-manual/releases/download/draft-20220723-10eea63/riscv-spec.pdf>`__ (see Chapter 25). The mapping from the C/C++ memory model to Ztso has not yet been ratified in any standards document. There are multiple possible mappings, and they are *not* mutually ABI compatible. The mapping LLVM implements is ABI compatible with the default WMO mapping. This mapping may change and there is *explicitly* no ABI stability offered while the extension remains in experimental status. User beware. -``experimental-zaamo``, ``experimental-zalrsc`` - LLVM implements the `v0.2 proposed specification <https://github.com/riscv/riscv-zaamo-zalrsc/releases/tag/v0.2>`__. - To use an experimental extension from `clang`, you must add `-menable-experimental-extensions` to the command line, and specify the exact version of the experimental extension you are using. To use an experimental extension with LLVM's internal developer tools (e.g. `llc`, `llvm-objdump`, `llvm-mc`), you must prefix the extension name with `experimental-`. Note that you don't need to specify the version with internal tools, and shouldn't include the `experimental-` prefix with `clang`. Vendor Extensions diff --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst index 26f1d33f68009..2af89e82d28ba 100644 --- a/llvm/docs/ReleaseNotes.rst +++ b/llvm/docs/ReleaseNotes.rst @@ -124,6 +124,7 @@ Changes to the RISC-V Backend * llvm-objdump now prints disassembled opcode bytes in groups of 2 or 4 bytes to match GNU objdump. The bytes within the groups are in big endian order. * Added smstateen extension to -march. CSR names for smstateen were already supported. +* Zaamo and Zalrsc are no longer experimental. Changes to the WebAssembly Backend ---------------------------------- >From b502020e09a8b3c86ae7db158e001681dce51f2e Mon Sep 17 00:00:00 2001 From: Brandon Wu <brandon...@sifive.com> Date: Mon, 20 May 2024 20:58:29 -0700 Subject: [PATCH 3/3] fixup! [RISCV] Bump Zaamo and Zalrsc to version 1.0 --- .../test/Preprocessor/riscv-target-features.c | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/clang/test/Preprocessor/riscv-target-features.c b/clang/test/Preprocessor/riscv-target-features.c index ead9ac9b4063f..0865add7e8fb8 100644 --- a/clang/test/Preprocessor/riscv-target-features.c +++ b/clang/test/Preprocessor/riscv-target-features.c @@ -79,7 +79,9 @@ // CHECK-NOT: __riscv_xventanacondops {{.*$}} // CHECK-NOT: __riscv_za128rs {{.*$}} // CHECK-NOT: __riscv_za64rs {{.*$}} +// CHECK-NOT: __riscv_zaamo {{.*$}} // CHECK-NOT: __riscv_zacas {{.*$}} +// CHECK-NOT: __riscv_zalrsc {{.*$}} // CHECK-NOT: __riscv_zama16b {{.*$}} // CHECK-NOT: __riscv_zawrs {{.*$}} // CHECK-NOT: __riscv_zba {{.*$}} @@ -174,10 +176,8 @@ // CHECK-NOT: __riscv_sspm{{.*$}} // CHECK-NOT: __riscv_ssqosid{{.*$}} // CHECK-NOT: __riscv_supm{{.*$}} -// CHECK-NOT: __riscv_zaamo {{.*$}} // CHECK-NOT: __riscv_zabha {{.*$}} // CHECK-NOT: __riscv_zalasr {{.*$}} -// CHECK-NOT: __riscv_zalrsc {{.*$}} // CHECK-NOT: __riscv_zfbfmin {{.*$}} // CHECK-NOT: __riscv_zicfilp {{.*$}} // CHECK-NOT: __riscv_zicfiss {{.*$}} @@ -707,6 +707,14 @@ // RUN: -o - | FileCheck --check-prefix=CHECK-ZA64RS-EXT %s // CHECK-ZA64RS-EXT: __riscv_za64rs 1000000{{$}} +// RUN: %clang --target=riscv32 \ +// RUN: -march=rv32i_zaamo1p0 -E -dM %s \ +// RUN: -o - | FileCheck --check-prefix=CHECK-ZAAMO-EXT %s +// RUN: %clang --target=riscv64 \ +// RUN: -march=rv64i_zaamo1p0 -E -dM %s \ +// RUN: -o - | FileCheck --check-prefix=CHECK-ZAAMO-EXT %s +// CHECK-ZAAMO-EXT: __riscv_zaamo 1000000{{$}} + // RUN: %clang --target=riscv32 \ // RUN: -march=rv32ia_zacas1p0 -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZACAS-EXT %s @@ -715,6 +723,14 @@ // RUN: -o - | FileCheck --check-prefix=CHECK-ZACAS-EXT %s // CHECK-ZACAS-EXT: __riscv_zacas 1000000{{$}} +// RUN: %clang --target=riscv32 \ +// RUN: -march=rv32i_zalrsc1p0 -E -dM %s \ +// RUN: -o - | FileCheck --check-prefix=CHECK-ZALRSC-EXT %s +// RUN: %clang --target=riscv64 \ +// RUN: -march=rv64i_zalrsc1p0 -E -dM %s \ +// RUN: -o - | FileCheck --check-prefix=CHECK-ZALRSC-EXT %s +// CHECK-ZALRSC-EXT: __riscv_zalrsc 1000000{{$}} + // RUN: %clang --target=riscv32 -march=rv32izama16b -x c -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZAMA16B-EXT %s // RUN: %clang --target=riscv64 -march=rv64izama16b -x c -E -dM %s \ @@ -1554,14 +1570,6 @@ // CHECK-ZVKT-EXT: __riscv_zvkt 1000000{{$}} // Experimental extensions -// RUN: %clang --target=riscv32 \ -// RUN: -march=rv32i_zaamo1p0 -E -dM %s \ -// RUN: -o - | FileCheck --check-prefix=CHECK-ZAAMO-EXT %s -// RUN: %clang --target=riscv64 \ -// RUN: -march=rv64i_zaamo1p0 -E -dM %s \ -// RUN: -o - | FileCheck --check-prefix=CHECK-ZAAMO-EXT %s -// CHECK-ZAAMO-EXT: __riscv_zaamo 1000000{{$}} - // RUN: %clang --target=riscv32 -menable-experimental-extensions \ // RUN: -march=rv32ia_zabha1p0 -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZABHA-EXT %s @@ -1578,14 +1586,6 @@ // RUN: -o - | FileCheck --check-prefix=CHECK-ZALASR-EXT %s // CHECK-ZALASR-EXT: __riscv_zalasr 1000{{$}} -// RUN: %clang --target=riscv32 \ -// RUN: -march=rv32i_zalrsc1p0 -E -dM %s \ -// RUN: -o - | FileCheck --check-prefix=CHECK-ZALRSC-EXT %s -// RUN: %clang --target=riscv64 \ -// RUN: -march=rv64i_zalrsc1p0 -E -dM %s \ -// RUN: -o - | FileCheck --check-prefix=CHECK-ZALRSC-EXT %s -// CHECK-ZALRSC-EXT: __riscv_zalrsc 1000000{{$}} - // RUN: %clang --target=riscv32 -menable-experimental-extensions \ // RUN: -march=rv32izfbfmin1p0 -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZFBFMIN-EXT %s _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits