llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-webassembly Author: Heejin Ahn (aheejin) <details> <summary>Changes</summary> --- Patch is 33.79 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/90777.diff 7 Files Affected: - (modified) clang/include/clang/Driver/Options.td (+20-20) - (modified) clang/lib/Basic/Targets/WebAssembly.cpp (+83-83) - (modified) clang/lib/Basic/Targets/WebAssembly.h (+9-9) - (modified) clang/test/Driver/wasm-features.c (+44-44) - (modified) llvm/lib/Target/WebAssembly/WebAssembly.td (+32-32) - (modified) llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td (+37-35) - (modified) llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h (+16-16) ``````````diff diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 864da4e1157f7d..5b79b066d384ad 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4895,34 +4895,34 @@ def mharden_sls_EQ : Joined<["-"], "mharden-sls=">, Group<m_Group>, " blr(ARM/AArch64), comdat(ARM/AArch64), nocomdat(ARM/AArch64)," " return(X86), indirect-jmp(X86)">; -def msimd128 : Flag<["-"], "msimd128">, Group<m_wasm_Features_Group>; -def mno_simd128 : Flag<["-"], "mno-simd128">, Group<m_wasm_Features_Group>; -def mrelaxed_simd : Flag<["-"], "mrelaxed-simd">, Group<m_wasm_Features_Group>; -def mno_relaxed_simd : Flag<["-"], "mno-relaxed-simd">, Group<m_wasm_Features_Group>; -def mhalf_precision : Flag<["-"], "mhalf-precision">, Group<m_wasm_Features_Group>; -def mno_half_precision : Flag<["-"], "mno-half-precision">, Group<m_wasm_Features_Group>; -def mnontrapping_fptoint : Flag<["-"], "mnontrapping-fptoint">, Group<m_wasm_Features_Group>; -def mno_nontrapping_fptoint : Flag<["-"], "mno-nontrapping-fptoint">, Group<m_wasm_Features_Group>; -def msign_ext : Flag<["-"], "msign-ext">, Group<m_wasm_Features_Group>; -def mno_sign_ext : Flag<["-"], "mno-sign-ext">, Group<m_wasm_Features_Group>; -def mexception_handing : Flag<["-"], "mexception-handling">, Group<m_wasm_Features_Group>; -def mno_exception_handing : Flag<["-"], "mno-exception-handling">, Group<m_wasm_Features_Group>; def matomics : Flag<["-"], "matomics">, Group<m_wasm_Features_Group>; def mno_atomics : Flag<["-"], "mno-atomics">, Group<m_wasm_Features_Group>; def mbulk_memory : Flag<["-"], "mbulk-memory">, Group<m_wasm_Features_Group>; def mno_bulk_memory : Flag<["-"], "mno-bulk-memory">, Group<m_wasm_Features_Group>; -def mmutable_globals : Flag<["-"], "mmutable-globals">, Group<m_wasm_Features_Group>; -def mno_mutable_globals : Flag<["-"], "mno-mutable-globals">, Group<m_wasm_Features_Group>; -def mmultivalue : Flag<["-"], "mmultivalue">, Group<m_wasm_Features_Group>; -def mno_multivalue : Flag<["-"], "mno-multivalue">, Group<m_wasm_Features_Group>; -def mtail_call : Flag<["-"], "mtail-call">, Group<m_wasm_Features_Group>; -def mno_tail_call : Flag<["-"], "mno-tail-call">, Group<m_wasm_Features_Group>; -def mreference_types : Flag<["-"], "mreference-types">, Group<m_wasm_Features_Group>; -def mno_reference_types : Flag<["-"], "mno-reference-types">, Group<m_wasm_Features_Group>; +def mexception_handing : Flag<["-"], "mexception-handling">, Group<m_wasm_Features_Group>; +def mno_exception_handing : Flag<["-"], "mno-exception-handling">, Group<m_wasm_Features_Group>; def mextended_const : Flag<["-"], "mextended-const">, Group<m_wasm_Features_Group>; def mno_extended_const : Flag<["-"], "mno-extended-const">, Group<m_wasm_Features_Group>; +def mhalf_precision : Flag<["-"], "mhalf-precision">, Group<m_wasm_Features_Group>; +def mno_half_precision : Flag<["-"], "mno-half-precision">, Group<m_wasm_Features_Group>; def mmultimemory : Flag<["-"], "mmultimemory">, Group<m_wasm_Features_Group>; def mno_multimemory : Flag<["-"], "mno-multimemory">, Group<m_wasm_Features_Group>; +def mmultivalue : Flag<["-"], "mmultivalue">, Group<m_wasm_Features_Group>; +def mno_multivalue : Flag<["-"], "mno-multivalue">, Group<m_wasm_Features_Group>; +def mmutable_globals : Flag<["-"], "mmutable-globals">, Group<m_wasm_Features_Group>; +def mno_mutable_globals : Flag<["-"], "mno-mutable-globals">, Group<m_wasm_Features_Group>; +def mnontrapping_fptoint : Flag<["-"], "mnontrapping-fptoint">, Group<m_wasm_Features_Group>; +def mno_nontrapping_fptoint : Flag<["-"], "mno-nontrapping-fptoint">, Group<m_wasm_Features_Group>; +def mreference_types : Flag<["-"], "mreference-types">, Group<m_wasm_Features_Group>; +def mno_reference_types : Flag<["-"], "mno-reference-types">, Group<m_wasm_Features_Group>; +def mrelaxed_simd : Flag<["-"], "mrelaxed-simd">, Group<m_wasm_Features_Group>; +def mno_relaxed_simd : Flag<["-"], "mno-relaxed-simd">, Group<m_wasm_Features_Group>; +def msign_ext : Flag<["-"], "msign-ext">, Group<m_wasm_Features_Group>; +def mno_sign_ext : Flag<["-"], "mno-sign-ext">, Group<m_wasm_Features_Group>; +def msimd128 : Flag<["-"], "msimd128">, Group<m_wasm_Features_Group>; +def mno_simd128 : Flag<["-"], "mno-simd128">, Group<m_wasm_Features_Group>; +def mtail_call : Flag<["-"], "mtail-call">, Group<m_wasm_Features_Group>; +def mno_tail_call : Flag<["-"], "mno-tail-call">, Group<m_wasm_Features_Group>; def mexec_model_EQ : Joined<["-"], "mexec-model=">, Group<m_wasm_Features_Driver_Group>, Values<"command,reactor">, HelpText<"Execution model (WebAssembly only)">, diff --git a/clang/lib/Basic/Targets/WebAssembly.cpp b/clang/lib/Basic/Targets/WebAssembly.cpp index 1f0418b21c1f86..a363478680570c 100644 --- a/clang/lib/Basic/Targets/WebAssembly.cpp +++ b/clang/lib/Basic/Targets/WebAssembly.cpp @@ -45,20 +45,20 @@ bool WebAssemblyTargetInfo::setABI(const std::string &Name) { bool WebAssemblyTargetInfo::hasFeature(StringRef Feature) const { return llvm::StringSwitch<bool>(Feature) - .Case("simd128", SIMDLevel >= SIMD128) - .Case("relaxed-simd", SIMDLevel >= RelaxedSIMD) + .Case("atomics", HasAtomics) + .Case("bulk-memory", HasBulkMemory) + .Case("exception-handling", HasExceptionHandling) + .Case("extended-const", HasExtendedConst) .Case("half-precision", HasHalfPrecision) + .Case("multimemory", HasMultiMemory) + .Case("multivalue", HasMultivalue) + .Case("mutable-globals", HasMutableGlobals) .Case("nontrapping-fptoint", HasNontrappingFPToInt) + .Case("reference-types", HasReferenceTypes) + .Case("relaxed-simd", SIMDLevel >= RelaxedSIMD) .Case("sign-ext", HasSignExt) - .Case("exception-handling", HasExceptionHandling) - .Case("bulk-memory", HasBulkMemory) - .Case("atomics", HasAtomics) - .Case("mutable-globals", HasMutableGlobals) - .Case("multivalue", HasMultivalue) + .Case("simd128", SIMDLevel >= SIMD128) .Case("tail-call", HasTailCall) - .Case("reference-types", HasReferenceTypes) - .Case("extended-const", HasExtendedConst) - .Case("multimemory", HasMultiMemory) .Default(false); } @@ -74,34 +74,34 @@ void WebAssemblyTargetInfo::fillValidCPUList( void WebAssemblyTargetInfo::getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const { defineCPUMacros(Builder, "wasm", /*Tuning=*/false); - if (SIMDLevel >= SIMD128) - Builder.defineMacro("__wasm_simd128__"); - if (SIMDLevel >= RelaxedSIMD) - Builder.defineMacro("__wasm_relaxed_simd__"); - if (HasNontrappingFPToInt) - Builder.defineMacro("__wasm_nontrapping_fptoint__"); - if (HasSignExt) - Builder.defineMacro("__wasm_sign_ext__"); - if (HasExceptionHandling) - Builder.defineMacro("__wasm_exception_handling__"); - if (HasBulkMemory) - Builder.defineMacro("__wasm_bulk_memory__"); if (HasAtomics) Builder.defineMacro("__wasm_atomics__"); - if (HasMutableGlobals) - Builder.defineMacro("__wasm_mutable_globals__"); - if (HasMultivalue) - Builder.defineMacro("__wasm_multivalue__"); - if (HasTailCall) - Builder.defineMacro("__wasm_tail_call__"); - if (HasReferenceTypes) - Builder.defineMacro("__wasm_reference_types__"); + if (HasBulkMemory) + Builder.defineMacro("__wasm_bulk_memory__"); + if (HasExceptionHandling) + Builder.defineMacro("__wasm_exception_handling__"); if (HasExtendedConst) Builder.defineMacro("__wasm_extended_const__"); if (HasMultiMemory) Builder.defineMacro("__wasm_multimemory__"); if (HasHalfPrecision) Builder.defineMacro("__wasm_half_precision__"); + if (HasMultivalue) + Builder.defineMacro("__wasm_multivalue__"); + if (HasMutableGlobals) + Builder.defineMacro("__wasm_mutable_globals__"); + if (HasNontrappingFPToInt) + Builder.defineMacro("__wasm_nontrapping_fptoint__"); + if (HasReferenceTypes) + Builder.defineMacro("__wasm_reference_types__"); + if (SIMDLevel >= RelaxedSIMD) + Builder.defineMacro("__wasm_relaxed_simd__"); + if (HasSignExt) + Builder.defineMacro("__wasm_sign_ext__"); + if (SIMDLevel >= SIMD128) + Builder.defineMacro("__wasm_simd128__"); + if (HasTailCall) + Builder.defineMacro("__wasm_tail_call__"); Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1"); Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"); @@ -160,10 +160,10 @@ bool WebAssemblyTargetInfo::initFeatureMap( addGenericFeatures(); Features["atomics"] = true; Features["bulk-memory"] = true; + Features["half-precision"] = true; Features["multimemory"] = true; Features["nontrapping-fptoint"] = true; Features["tail-call"] = true; - Features["half-precision"] = true; setSIMDLevel(Features, SIMD128, true); }; if (CPU == "generic") { @@ -178,36 +178,20 @@ bool WebAssemblyTargetInfo::initFeatureMap( bool WebAssemblyTargetInfo::handleTargetFeatures( std::vector<std::string> &Features, DiagnosticsEngine &Diags) { for (const auto &Feature : Features) { - if (Feature == "+simd128") { - SIMDLevel = std::max(SIMDLevel, SIMD128); - continue; - } - if (Feature == "-simd128") { - SIMDLevel = std::min(SIMDLevel, SIMDEnum(SIMD128 - 1)); - continue; - } - if (Feature == "+relaxed-simd") { - SIMDLevel = std::max(SIMDLevel, RelaxedSIMD); - continue; - } - if (Feature == "-relaxed-simd") { - SIMDLevel = std::min(SIMDLevel, SIMDEnum(RelaxedSIMD - 1)); - continue; - } - if (Feature == "+nontrapping-fptoint") { - HasNontrappingFPToInt = true; + if (Feature == "+atomics") { + HasAtomics = true; continue; } - if (Feature == "-nontrapping-fptoint") { - HasNontrappingFPToInt = false; + if (Feature == "-atomics") { + HasAtomics = false; continue; } - if (Feature == "+sign-ext") { - HasSignExt = true; + if (Feature == "+bulk-memory") { + HasBulkMemory = true; continue; } - if (Feature == "-sign-ext") { - HasSignExt = false; + if (Feature == "-bulk-memory") { + HasBulkMemory = false; continue; } if (Feature == "+exception-handling") { @@ -218,12 +202,12 @@ bool WebAssemblyTargetInfo::handleTargetFeatures( HasExceptionHandling = false; continue; } - if (Feature == "+bulk-memory") { - HasBulkMemory = true; + if (Feature == "+extended-const") { + HasExtendedConst = true; continue; } - if (Feature == "-bulk-memory") { - HasBulkMemory = false; + if (Feature == "-extended-const") { + HasExtendedConst = false; continue; } if (Feature == "+half-precision") { @@ -235,20 +219,12 @@ bool WebAssemblyTargetInfo::handleTargetFeatures( HasHalfPrecision = false; continue; } - if (Feature == "+atomics") { - HasAtomics = true; - continue; - } - if (Feature == "-atomics") { - HasAtomics = false; - continue; - } - if (Feature == "+mutable-globals") { - HasMutableGlobals = true; + if (Feature == "+multimemory") { + HasMultiMemory = true; continue; } - if (Feature == "-mutable-globals") { - HasMutableGlobals = false; + if (Feature == "-multimemory") { + HasMultiMemory = false; continue; } if (Feature == "+multivalue") { @@ -259,12 +235,20 @@ bool WebAssemblyTargetInfo::handleTargetFeatures( HasMultivalue = false; continue; } - if (Feature == "+tail-call") { - HasTailCall = true; + if (Feature == "+mutable-globals") { + HasMutableGlobals = true; continue; } - if (Feature == "-tail-call") { - HasTailCall = false; + if (Feature == "-mutable-globals") { + HasMutableGlobals = false; + continue; + } + if (Feature == "+nontrapping-fptoint") { + HasNontrappingFPToInt = true; + continue; + } + if (Feature == "-nontrapping-fptoint") { + HasNontrappingFPToInt = false; continue; } if (Feature == "+reference-types") { @@ -275,20 +259,36 @@ bool WebAssemblyTargetInfo::handleTargetFeatures( HasReferenceTypes = false; continue; } - if (Feature == "+extended-const") { - HasExtendedConst = true; + if (Feature == "+relaxed-simd") { + SIMDLevel = std::max(SIMDLevel, RelaxedSIMD); continue; } - if (Feature == "-extended-const") { - HasExtendedConst = false; + if (Feature == "-relaxed-simd") { + SIMDLevel = std::min(SIMDLevel, SIMDEnum(RelaxedSIMD - 1)); continue; } - if (Feature == "+multimemory") { - HasMultiMemory = true; + if (Feature == "+sign-ext") { + HasSignExt = true; continue; } - if (Feature == "-multimemory") { - HasMultiMemory = false; + if (Feature == "-sign-ext") { + HasSignExt = false; + continue; + } + if (Feature == "+simd128") { + SIMDLevel = std::max(SIMDLevel, SIMD128); + continue; + } + if (Feature == "-simd128") { + SIMDLevel = std::min(SIMDLevel, SIMDEnum(SIMD128 - 1)); + continue; + } + if (Feature == "+tail-call") { + HasTailCall = true; + continue; + } + if (Feature == "-tail-call") { + HasTailCall = false; continue; } diff --git a/clang/lib/Basic/Targets/WebAssembly.h b/clang/lib/Basic/Targets/WebAssembly.h index e4c18879182ed7..4db97867df6070 100644 --- a/clang/lib/Basic/Targets/WebAssembly.h +++ b/clang/lib/Basic/Targets/WebAssembly.h @@ -53,18 +53,18 @@ class LLVM_LIBRARY_VISIBILITY WebAssemblyTargetInfo : public TargetInfo { RelaxedSIMD, } SIMDLevel = NoSIMD; - bool HasNontrappingFPToInt = false; - bool HasSignExt = false; - bool HasExceptionHandling = false; - bool HasBulkMemory = false; bool HasAtomics = false; - bool HasMutableGlobals = false; - bool HasMultivalue = false; - bool HasTailCall = false; - bool HasReferenceTypes = false; + bool HasBulkMemory = false; + bool HasExceptionHandling = false; bool HasExtendedConst = false; - bool HasMultiMemory = false; bool HasHalfPrecision = false; + bool HasMultiMemory = false; + bool HasMultivalue = false; + bool HasMutableGlobals = false; + bool HasNontrappingFPToInt = false; + bool HasReferenceTypes = false; + bool HasSignExt = false; + bool HasTailCall = false; std::string ABI; diff --git a/clang/test/Driver/wasm-features.c b/clang/test/Driver/wasm-features.c index 1f7fb213498265..b77cb5ea9b4958 100644 --- a/clang/test/Driver/wasm-features.c +++ b/clang/test/Driver/wasm-features.c @@ -11,35 +11,35 @@ // GENERIC: "-target-cpu" "generic" // BLEEDING-EDGE: "-target-cpu" "bleeding-edge" +// RUN: %clang --target=wasm32-unknown-unknown -### %s -matomics 2>&1 | FileCheck %s -check-prefix=ATOMICS +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-atomics 2>&1 | FileCheck %s -check-prefix=NO-ATOMICS + +// ATOMICS: "-target-feature" "+atomics" +// NO-ATOMICS: "-target-feature" "-atomics" + // RUN: %clang --target=wasm32-unknown-unknown -### %s -mbulk-memory 2>&1 | FileCheck %s -check-prefix=BULK-MEMORY // RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-bulk-memory 2>&1 | FileCheck %s -check-prefix=NO-BULK-MEMORY // BULK-MEMORY: "-target-feature" "+bulk-memory" // NO-BULK-MEMORY: "-target-feature" "-bulk-memory" -// RUN: %clang --target=wasm32-unknown-unknown -### %s -mmutable-globals 2>&1 | FileCheck %s -check-prefix=MUTABLE-GLOBALS -// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-mutable-globals 2>&1 | FileCheck %s -check-prefix=NO-MUTABLE-GLOBALS - -// MUTABLE-GLOBALS: "-target-feature" "+mutable-globals" -// NO-MUTABLE-GLOBALS: "-target-feature" "-mutable-globals" - -// RUN: %clang --target=wasm32-unknown-unknown -### %s -msign-ext 2>&1 | FileCheck %s -check-prefix=SIGN-EXT -// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-sign-ext 2>&1 | FileCheck %s -check-prefix=NO-SIGN-EXT +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mexception-handling 2>&1 | FileCheck %s -check-prefix=EXCEPTION-HANDLING +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-exception-handling 2>&1 | FileCheck %s -check-prefix=NO-EXCEPTION-HANDLING -// SIGN-EXT: "-target-feature" "+sign-ext" -// NO-SIGN-EXT: "-target-feature" "-sign-ext" +// EXCEPTION-HANDLING: "-target-feature" "+exception-handling" +// NO-EXCEPTION-HANDLING: "-target-feature" "-exception-handling" -// RUN: %clang --target=wasm32-unknown-unknown -### %s -mnontrapping-fptoint 2>&1 | FileCheck %s -check-prefix=NONTRAPPING-FPTOINT -// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-nontrapping-fptoint 2>&1 | FileCheck %s -check-prefix=NO-NONTRAPPING-FPTOINT +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mextended-const 2>&1 | FileCheck %s -check-prefix=EXTENDED-CONST +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-extended-const 2>&1 | FileCheck %s -check-prefix=NO-EXTENDED-CONST -// NONTRAPPING-FPTOINT: "-target-feature" "+nontrapping-fptoint" -// NO-NONTRAPPING-FPTOINT: "-target-feature" "-nontrapping-fptoint" +// EXTENDED-CONST: "-target-feature" "+extended-const" +// NO-EXTENDED-CONST: "-target-feature" "-extended-const" -// RUN: %clang --target=wasm32-unknown-unknown -### %s -mmultivalue 2>&1 | FileCheck %s -check-prefix=MULTIVALUE -// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-multivalue 2>&1 | FileCheck %s -check-prefix=NO-MULTIVALUE +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mhalf-precision 2>&1 | FileCheck %s -check-prefix=HALF-PRECISION +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-half-precision 2>&1 | FileCheck %s -check-prefix=NO-HALF-PRECISION -// MULTIVALUE: "-target-feature" "+multivalue" -// NO-MULTIVALUE: "-target-feature" "-multivalue" +// HALF-PRECISION: "-target-feature" "+half-precision" +// NO-HALF-PRECISION: "-target-feature" "-half-precision" // RUN: %clang --target=wasm32-unknown-unknown -### %s -mmultimemory 2>&1 | FileCheck %s -check-prefix=MULTIMEMORY // RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-multimemory 2>&1 | FileCheck %s -check-prefix=NO-MULTIMEMORY @@ -47,17 +47,23 @@ // MULTIMEMORY: "-target-feature" "+multimemory" // NO-MULTIMEMORY: "-target-feature" "-multimemory" -// RUN: %clang --target=wasm32-unknown-unknown -### %s -matomics 2>&1 | FileCheck %s -check-prefix=ATOMICS -// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-atomics 2>&1 | FileCheck %s -check-prefix=NO-ATOMICS +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mmultivalue 2>&1 | FileCheck %s -check-prefix=MULTIVALUE +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-multivalue 2>&1 | FileCheck %s -check-prefix=NO-MULTIVALUE -// ATOMICS: "-target-feature" "+atomics" -// NO-ATOMICS: "-target-feature" "-atomics" +// MULTIVALUE: "-target-feature" "+multivalue" +// NO-MULTIVALUE: "-target-feature" "-multivalue" -// RUN: %clang --target=wasm32-unknown-unknown -### %s -mtail-call 2>&1 | FileCheck %s -check-prefix=TAIL-CALL -// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-tail-call 2>&1 | FileCheck %s -check-prefix=NO-TAIL-CALL +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mmutable-globals 2>&1 | FileCheck %s -check-prefix=MUTABLE-GLOBALS +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-mutable-globals 2>&1 | FileCheck %s -check-prefix=NO-MUTABLE-GLOBALS -// TAIL-CALL: "-target-feature" "+tail-call" -// NO-TAIL-CALL: "-target-feature" "-tail-call" +// MUTABLE-GLOBALS: "-target-feature" "+mutable-globals" +// NO-MUTABLE-GLOBALS: "-target-feature" "-mutable-globals" + +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mnontrapping-fptoint 2>&1 | FileCheck %s -check-prefix=NONTRAPPING-FPTOINT +// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-nontrapping-fptoint 2>&1 | FileCheck %s -check-prefix=NO-NONTRAPPING-FPTOINT + +// NONTRAPPING-FPTOINT: "-target-feature" "+nontrapping-fptoint" +// NO-NONTRAPPING-FPTOINT: "-target-feature" "-nontrapping-fptoint" // RUN: %clang --target=wasm32-unknown-unknown -### %s -mreference-types 2>&1 | FileCheck %s -check-prefix=REFERENCE-TYPES // RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-reference-types 2>&1 | FileCheck %s -check-prefix=NO-REFERENCE-TYPES @@ -65,3... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/90777 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits