BeMg created this revision. Herald added subscribers: jobnoorman, luke, VincentWu, vkmr, frasercrmck, jdoerfert, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, kito-cheng, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, hiraditya, arichardson. Herald added a project: All. BeMg requested review of this revision. Herald added subscribers: llvm-commits, cfe-commits, wangpc, eopXD, MaskRay. Herald added projects: clang, LLVM.
Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D155674 Files: clang/include/clang/Basic/BuiltinsRISCV.def clang/test/CodeGen/RISCV/ntlh-intrinsics/riscv32-zihintntl.c clang/test/Preprocessor/riscv-target-features.c llvm/docs/RISCVUsage.rst llvm/lib/Support/RISCVISAInfo.cpp llvm/lib/Target/RISCV/RISCVFeatures.td llvm/test/CodeGen/RISCV/attributes.ll llvm/test/CodeGen/RISCV/nontemporal-scalable.ll llvm/test/CodeGen/RISCV/nontemporal.ll llvm/test/CodeGen/RISCV/prefetch.ll llvm/test/MC/RISCV/attribute-arch.s llvm/test/MC/RISCV/rv32zihintntl-invalid.s llvm/test/MC/RISCV/rv32zihintntl-valid.s llvm/test/MC/RISCV/rv32zihintntlc-invalid.s llvm/test/MC/RISCV/rv32zihintntlc-valid.s
Index: llvm/test/MC/RISCV/rv32zihintntlc-valid.s =================================================================== --- llvm/test/MC/RISCV/rv32zihintntlc-valid.s +++ llvm/test/MC/RISCV/rv32zihintntlc-valid.s @@ -1,15 +1,15 @@ -# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-zihintntl,+c -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+zihintntl,+c -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-zihintntl,+c -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+zihintntl,+c -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+experimental-zihintntl,+c < %s \ -# RUN: | llvm-objdump --mattr=+experimental-zihintntl,+c -d -r - \ +# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+zihintntl,+c < %s \ +# RUN: | llvm-objdump --mattr=+zihintntl,+c -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+experimental-zihintntl,+c < %s \ -# RUN: | llvm-objdump --mattr=+experimental-zihintntl,+c -d -r - \ +# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+zihintntl,+c < %s \ +# RUN: | llvm-objdump --mattr=+zihintntl,+c -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s -# RUN: not llvm-mc %s -triple=riscv32 -mattr=+experimental-zihintntl 2>&1 | FileCheck -check-prefix=CHECK-NO-C %s -# RUN: not llvm-mc %s -triple=riscv64 -mattr=+experimental-zihintntl 2>&1 | FileCheck -check-prefix=CHECK-NO-C %s +# RUN: not llvm-mc %s -triple=riscv32 -mattr=+zihintntl 2>&1 | FileCheck -check-prefix=CHECK-NO-C %s +# RUN: not llvm-mc %s -triple=riscv64 -mattr=+zihintntl 2>&1 | FileCheck -check-prefix=CHECK-NO-C %s # CHECK-ASM-AND-OBJ: ntl.p1 # CHECK-ASM: encoding: [0x33,0x00,0x20,0x00] Index: llvm/test/MC/RISCV/rv32zihintntlc-invalid.s =================================================================== --- llvm/test/MC/RISCV/rv32zihintntlc-invalid.s +++ llvm/test/MC/RISCV/rv32zihintntlc-invalid.s @@ -1,5 +1,5 @@ -# RUN: not llvm-mc -triple riscv32 -mattr=+experimental-zihintntl,+c < %s 2>&1 | FileCheck %s -# RUN: not llvm-mc -triple riscv64 -mattr=+experimental-zihintntl,+c < %s 2>&1 | FileCheck %s +# RUN: not llvm-mc -triple riscv32 -mattr=+zihintntl,+c < %s 2>&1 | FileCheck %s +# RUN: not llvm-mc -triple riscv64 -mattr=+zihintntl,+c < %s 2>&1 | FileCheck %s c.ntl.p1 1 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction c.ntl.pall 2 # CHECK: :[[@LINE]]:12: error: invalid operand for instruction Index: llvm/test/MC/RISCV/rv32zihintntl-valid.s =================================================================== --- llvm/test/MC/RISCV/rv32zihintntl-valid.s +++ llvm/test/MC/RISCV/rv32zihintntl-valid.s @@ -1,12 +1,12 @@ -# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-zihintntl -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv32 -mattr=+zihintntl -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-zihintntl -riscv-no-aliases -show-encoding \ +# RUN: llvm-mc %s -triple=riscv64 -mattr=+zihintntl -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-zihintntl < %s \ -# RUN: | llvm-objdump --mattr=+experimental-zihintntl -M no-aliases -d -r - \ +# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+zihintntl < %s \ +# RUN: | llvm-objdump --mattr=+zihintntl -M no-aliases -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s -# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+experimental-zihintntl < %s \ -# RUN: | llvm-objdump --mattr=+experimental-zihintntl -M no-aliases -d -r - \ +# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+zihintntl < %s \ +# RUN: | llvm-objdump --mattr=+zihintntl -M no-aliases -d -r - \ # RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s # CHECK-ASM-AND-OBJ: add zero, zero, sp Index: llvm/test/MC/RISCV/rv32zihintntl-invalid.s =================================================================== --- llvm/test/MC/RISCV/rv32zihintntl-invalid.s +++ llvm/test/MC/RISCV/rv32zihintntl-invalid.s @@ -1,5 +1,5 @@ -# RUN: not llvm-mc -triple riscv32 -mattr=+experimental-zihintntl < %s 2>&1 | FileCheck %s -# RUN: not llvm-mc -triple riscv64 -mattr=+experimental-zihintntl < %s 2>&1 | FileCheck %s +# RUN: not llvm-mc -triple riscv32 -mattr=+zihintntl < %s 2>&1 | FileCheck %s +# RUN: not llvm-mc -triple riscv64 -mattr=+zihintntl < %s 2>&1 | FileCheck %s ntl.p1 1 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction ntl.pall 2 # CHECK: :[[@LINE]]:10: error: invalid operand for instruction Index: llvm/test/MC/RISCV/attribute-arch.s =================================================================== --- llvm/test/MC/RISCV/attribute-arch.s +++ llvm/test/MC/RISCV/attribute-arch.s @@ -216,11 +216,11 @@ .attribute arch, "rv32i_zk1p0" # CHECK: attribute 5, "rv32i2p1_zbkb1p0_zbkc1p0_zbkx1p0_zk1p0_zkn1p0_zknd1p0_zkne1p0_zknh1p0_zkr1p0_zkt1p0" -.attribute arch, "rv32izihintntl0p2" -# CHECK: attribute 5, "rv32i2p1_zihintntl0p2" +.attribute arch, "rv32izihintntl1p0" +# CHECK: attribute 5, "rv32i2p1_zihintntl1p0" -.attribute arch, "rv32iczihintntl0p2" -# CHECK: attribute 5, "rv32i2p1_c2p0_zihintntl0p2" +.attribute arch, "rv32iczihintntl1p0" +# CHECK: attribute 5, "rv32i2p1_c2p0_zihintntl1p0" .attribute arch, "rv32if_zkt1p0_zve32f1p0_zve32x1p0_zvl32b1p0" # CHECK: attribute 5, "rv32i2p1_f2p2_zicsr2p0_zkt1p0_zve32f1p0_zve32x1p0_zvl32b1p0" Index: llvm/test/CodeGen/RISCV/prefetch.ll =================================================================== --- llvm/test/CodeGen/RISCV/prefetch.ll +++ llvm/test/CodeGen/RISCV/prefetch.ll @@ -7,7 +7,7 @@ ; RUN: | FileCheck -check-prefix=RV32ZICBOP %s ; RUN: llc -mtriple=riscv64 -mattr=zicbop -verify-machineinstrs < %s \ ; RUN: | FileCheck -check-prefix=RV64ZICBOP %s -; RUN: llc -mtriple=riscv64 -mattr=+zicbop,+experimental-zihintntl -verify-machineinstrs < %s \ +; RUN: llc -mtriple=riscv64 -mattr=+zicbop,+zihintntl -verify-machineinstrs < %s \ ; RUN: | FileCheck -check-prefix=RV64ZICBOPZIHINTNTL %s declare void @llvm.prefetch(ptr, i32, i32, i32) Index: llvm/test/CodeGen/RISCV/nontemporal.ll =================================================================== --- llvm/test/CodeGen/RISCV/nontemporal.ll +++ llvm/test/CodeGen/RISCV/nontemporal.ll @@ -1,10 +1,10 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=riscv64 -mattr=+experimental-zihintntl,+f,+d,+zfh < %s | FileCheck %s -check-prefix=CHECK-RV64 -; RUN: llc -mtriple=riscv32 -mattr=+experimental-zihintntl,+f,+d,+zfh < %s | FileCheck %s -check-prefix=CHECK-RV32 -; RUN: llc -mtriple=riscv64 -mattr=+experimental-zihintntl,+f,+d,+zfh,+c < %s | FileCheck %s -check-prefix=CHECK-RV64C -; RUN: llc -mtriple=riscv32 -mattr=+experimental-zihintntl,+f,+d,+zfh,+c < %s | FileCheck %s -check-prefix=CHECK-RV32C -; RUN: llc -mtriple=riscv64 -mattr=+experimental-zihintntl,+f,+d,+zfh,+v < %s | FileCheck %s -check-prefix=CHECK-RV64V -; RUN: llc -mtriple=riscv32 -mattr=+experimental-zihintntl,+f,+d,+zfh,+v < %s | FileCheck %s -check-prefix=CHECK-RV32V +; RUN: llc -mtriple=riscv64 -mattr=+zihintntl,+f,+d,+zfh < %s | FileCheck %s -check-prefix=CHECK-RV64 +; RUN: llc -mtriple=riscv32 -mattr=+zihintntl,+f,+d,+zfh < %s | FileCheck %s -check-prefix=CHECK-RV32 +; RUN: llc -mtriple=riscv64 -mattr=+zihintntl,+f,+d,+zfh,+c < %s | FileCheck %s -check-prefix=CHECK-RV64C +; RUN: llc -mtriple=riscv32 -mattr=+zihintntl,+f,+d,+zfh,+c < %s | FileCheck %s -check-prefix=CHECK-RV32C +; RUN: llc -mtriple=riscv64 -mattr=+zihintntl,+f,+d,+zfh,+v < %s | FileCheck %s -check-prefix=CHECK-RV64V +; RUN: llc -mtriple=riscv32 -mattr=+zihintntl,+f,+d,+zfh,+v < %s | FileCheck %s -check-prefix=CHECK-RV32V define i64 @test_nontemporal_load_i64(ptr %p) { ; CHECK-RV64-LABEL: test_nontemporal_load_i64: Index: llvm/test/CodeGen/RISCV/nontemporal-scalable.ll =================================================================== --- llvm/test/CodeGen/RISCV/nontemporal-scalable.ll +++ llvm/test/CodeGen/RISCV/nontemporal-scalable.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 -; RUN: llc -mtriple=riscv64 -mattr=+experimental-zihintntl,+f,+d,+zfh,+v < %s | FileCheck %s -check-prefix=CHECK-RV64V -; RUN: llc -mtriple=riscv32 -mattr=+experimental-zihintntl,+f,+d,+zfh,+v < %s | FileCheck %s -check-prefix=CHECK-RV32V +; RUN: llc -mtriple=riscv64 -mattr=+zihintntl,+f,+d,+zfh,+v < %s | FileCheck %s -check-prefix=CHECK-RV64V +; RUN: llc -mtriple=riscv32 -mattr=+zihintntl,+f,+d,+zfh,+v < %s | FileCheck %s -check-prefix=CHECK-RV32V define <vscale x 2 x i64> @test_nontemporal_load_nxv2i64(ptr %p) { ; CHECK-RV64V-LABEL: test_nontemporal_load_nxv2i64: Index: llvm/test/CodeGen/RISCV/attributes.ll =================================================================== --- llvm/test/CodeGen/RISCV/attributes.ll +++ llvm/test/CodeGen/RISCV/attributes.ll @@ -9,7 +9,7 @@ ; RUN: llc -mtriple=riscv32 -mattr=+d %s -o - | FileCheck --check-prefixes=CHECK,RV32D %s ; RUN: llc -mtriple=riscv32 -mattr=+c %s -o - | FileCheck --check-prefixes=CHECK,RV32C %s ; RUN: llc -mtriple=riscv32 -mattr=+zihintpause %s -o - | FileCheck --check-prefixes=CHECK,RV32ZIHINTPAUSE %s -; RUN: llc -mtriple=riscv32 -mattr=+experimental-zihintntl %s -o - | FileCheck --check-prefixes=CHECK,RV32ZIHINTNTL %s +; RUN: llc -mtriple=riscv32 -mattr=+zihintntl %s -o - | FileCheck --check-prefixes=CHECK,RV32ZIHINTNTL %s ; RUN: llc -mtriple=riscv32 -mattr=+zfhmin %s -o - | FileCheck --check-prefixes=CHECK,RV32ZFHMIN %s ; RUN: llc -mtriple=riscv32 -mattr=+zfh %s -o - | FileCheck --check-prefixes=CHECK,RV32ZFH %s ; RUN: llc -mtriple=riscv32 -mattr=+zba %s -o - | FileCheck --check-prefixes=CHECK,RV32ZBA %s @@ -93,7 +93,7 @@ ; RUN: llc -mtriple=riscv64 -mattr=+d %s -o - | FileCheck --check-prefixes=CHECK,RV64D %s ; RUN: llc -mtriple=riscv64 -mattr=+c %s -o - | FileCheck --check-prefixes=CHECK,RV64C %s ; RUN: llc -mtriple=riscv64 -mattr=+zihintpause %s -o - | FileCheck --check-prefixes=CHECK,RV64ZIHINTPAUSE %s -; RUN: llc -mtriple=riscv64 -mattr=+experimental-zihintntl %s -o - | FileCheck --check-prefixes=CHECK,RV64ZIHINTNTL %s +; RUN: llc -mtriple=riscv64 -mattr=+zihintntl %s -o - | FileCheck --check-prefixes=CHECK,RV64ZIHINTNTL %s ; RUN: llc -mtriple=riscv64 -mattr=+zfhmin %s -o - | FileCheck --check-prefixes=CHECK,RV64ZFHMIN %s ; RUN: llc -mtriple=riscv64 -mattr=+zfh %s -o - | FileCheck --check-prefixes=CHECK,RV64ZFH %s ; RUN: llc -mtriple=riscv64 -mattr=+zba %s -o - | FileCheck --check-prefixes=CHECK,RV64ZBA %s @@ -182,7 +182,7 @@ ; RV32D: .attribute 5, "rv32i2p1_f2p2_d2p2_zicsr2p0" ; RV32C: .attribute 5, "rv32i2p1_c2p0" ; RV32ZIHINTPAUSE: .attribute 5, "rv32i2p1_zihintpause2p0" -; RV32ZIHINTNTL: .attribute 5, "rv32i2p1_zihintntl0p2" +; RV32ZIHINTNTL: .attribute 5, "rv32i2p1_zihintntl1p0" ; RV32ZFHMIN: .attribute 5, "rv32i2p1_f2p2_zicsr2p0_zfhmin1p0" ; RV32ZFH: .attribute 5, "rv32i2p1_f2p2_zicsr2p0_zfh1p0" ; RV32ZBA: .attribute 5, "rv32i2p1_zba1p0" @@ -265,7 +265,7 @@ ; RV64D: .attribute 5, "rv64i2p1_f2p2_d2p2_zicsr2p0" ; RV64C: .attribute 5, "rv64i2p1_c2p0" ; RV64ZIHINTPAUSE: .attribute 5, "rv64i2p1_zihintpause2p0" -; RV64ZIHINTNTL: .attribute 5, "rv64i2p1_zihintntl0p2" +; RV64ZIHINTNTL: .attribute 5, "rv64i2p1_zihintntl1p0" ; RV64ZFHMIN: .attribute 5, "rv64i2p1_f2p2_zicsr2p0_zfhmin1p0" ; RV64ZFH: .attribute 5, "rv64i2p1_f2p2_zicsr2p0_zfh1p0" ; RV64ZBA: .attribute 5, "rv64i2p1_zba1p0" Index: llvm/lib/Target/RISCV/RISCVFeatures.td =================================================================== --- llvm/lib/Target/RISCV/RISCVFeatures.td +++ llvm/lib/Target/RISCV/RISCVFeatures.td @@ -73,7 +73,7 @@ "'Zihintpause' (Pause Hint)">; def FeatureStdExtZihintntl - : SubtargetFeature<"experimental-zihintntl", "HasStdExtZihintntl", "true", + : SubtargetFeature<"zihintntl", "HasStdExtZihintntl", "true", "'zihintntl' (Non-Temporal Locality Hints)">; def HasStdExtZihintntl : Predicate<"Subtarget->hasStdExtZihintntl()">, AssemblerPredicate<(all_of FeatureStdExtZihintntl), Index: llvm/lib/Support/RISCVISAInfo.cpp =================================================================== --- llvm/lib/Support/RISCVISAInfo.cpp +++ llvm/lib/Support/RISCVISAInfo.cpp @@ -116,6 +116,7 @@ {"zicntr", RISCVExtensionVersion{1, 0}}, {"zicsr", RISCVExtensionVersion{2, 0}}, {"zifencei", RISCVExtensionVersion{2, 0}}, + {"zihintntl", RISCVExtensionVersion{1, 0}}, {"zihintpause", RISCVExtensionVersion{2, 0}}, {"zihpm", RISCVExtensionVersion{1, 0}}, @@ -163,8 +164,6 @@ {"zicond", RISCVExtensionVersion{1, 0}}, - {"zihintntl", RISCVExtensionVersion{0, 2}}, - {"ztso", RISCVExtensionVersion{0, 1}}, {"zvbb", RISCVExtensionVersion{1, 0}}, Index: llvm/docs/RISCVUsage.rst =================================================================== --- llvm/docs/RISCVUsage.rst +++ llvm/docs/RISCVUsage.rst @@ -120,6 +120,7 @@ ``Zicntr`` (`See Note <#riscv-i2p1-note>`__) ``Zicsr`` (`See Note <#riscv-i2p1-note>`__) ``Zifencei`` (`See Note <#riscv-i2p1-note>`__) + ``zihintntl`` Supported ``Zihintpause`` Assembly Support ``Zihpm`` (`See Note <#riscv-i2p1-note>`__) ``Zkn`` Supported @@ -203,9 +204,6 @@ ``experimental-zicond`` LLVM implements the `1.0-rc1 draft specification <https://github.com/riscv/riscv-zicond/releases/tag/v1.0-rc1>`__. -``experimental-zihintntl`` - LLVM implements the `0.2 draft specification <https://github.com/riscv/riscv-isa-manual/releases/tag/draft-20220831-bf5a151>`__. - ``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. Index: clang/test/Preprocessor/riscv-target-features.c =================================================================== --- clang/test/Preprocessor/riscv-target-features.c +++ clang/test/Preprocessor/riscv-target-features.c @@ -146,12 +146,12 @@ // CHECK-C-EXT: __riscv_compressed 1 // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \ -// RUN: -march=rv32izihintntl0p2 -x c -E -dM %s \ +// RUN: -march=rv32izihintntl1p0 -x c -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTNTL-EXT %s // RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \ -// RUN: -march=rv64izihintntl0p2 -x c -E -dM %s \ +// RUN: -march=rv64izihintntl1p0 -x c -E -dM %s \ // RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTNTL-EXT %s -// CHECK-ZIHINTNTL-EXT: __riscv_zihintntl 2000{{$}} +// CHECK-ZIHINTNTL-EXT: __riscv_zihintntl 1000000{{$}} // RUN: %clang -target riscv32-unknown-linux-gnu \ // RUN: -march=rv32izba1p0 -x c -E -dM %s \ Index: clang/test/CodeGen/RISCV/ntlh-intrinsics/riscv32-zihintntl.c =================================================================== --- clang/test/CodeGen/RISCV/ntlh-intrinsics/riscv32-zihintntl.c +++ clang/test/CodeGen/RISCV/ntlh-intrinsics/riscv32-zihintntl.c @@ -1,5 +1,5 @@ // REQUIRES: riscv-registered-target -// RUN: %clang_cc1 -triple riscv32 -target-feature +v -target-feature +experimental-zihintntl -emit-llvm %s -o - \ +// RUN: %clang_cc1 -triple riscv32 -target-feature +v -target-feature +zihintntl -emit-llvm %s -o - \ // RUN: | FileCheck %s #include <riscv_ntlh.h> Index: clang/include/clang/Basic/BuiltinsRISCV.def =================================================================== --- clang/include/clang/Basic/BuiltinsRISCV.def +++ clang/include/clang/Basic/BuiltinsRISCV.def @@ -86,8 +86,8 @@ TARGET_BUILTIN(__builtin_riscv_sm3p1, "UiUi", "nc", "zksh") // Zihintntl extension -TARGET_BUILTIN(__builtin_riscv_ntl_load, "v.", "t", "experimental-zihintntl") -TARGET_BUILTIN(__builtin_riscv_ntl_store, "v.", "t", "experimental-zihintntl") +TARGET_BUILTIN(__builtin_riscv_ntl_load, "v.", "t", "zihintntl") +TARGET_BUILTIN(__builtin_riscv_ntl_store, "v.", "t", "zihintntl") #undef BUILTIN #undef TARGET_BUILTIN
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits