;; RUN: wasm-ctor-eval --help | filecheck %s
;; CHECK: ================================================================================
;; CHECK-NEXT: wasm-ctor-eval INFILE
;; CHECK-NEXT:
;; CHECK-NEXT: Execute code at compile time
;; CHECK-NEXT: ================================================================================
;; CHECK-NEXT:
;; CHECK-NEXT:
;; CHECK-NEXT: wasm-ctor-eval options:
;; CHECK-NEXT: -----------------------
;; CHECK-NEXT:
;; CHECK-NEXT:   --output,-o                          Output file (stdout if not specified)
;; CHECK-NEXT:
;; CHECK-NEXT:   --emit-text,-S                       Emit text instead of binary for the
;; CHECK-NEXT:                                        output file
;; CHECK-NEXT:
;; CHECK-NEXT:   --debuginfo,-g                       Emit names section and debug info
;; CHECK-NEXT:
;; CHECK-NEXT:   --ctors,-c                           Comma-separated list of global
;; CHECK-NEXT:                                        constructor functions to evaluate
;; CHECK-NEXT:
;; CHECK-NEXT:   --kept-exports,-ke                   Comma-separated list of ctors whose
;; CHECK-NEXT:                                        exports we keep around even if we eval
;; CHECK-NEXT:                                        those ctors
;; CHECK-NEXT:
;; CHECK-NEXT:   --ignore-external-input,-ipi         Assumes no env vars are to be read, stdin
;; CHECK-NEXT:                                        is empty, etc.
;; CHECK-NEXT:
;; CHECK-NEXT:   --quiet,-q                           Do not emit verbose logging about the
;; CHECK-NEXT:                                        eval process
;; CHECK-NEXT:
;; CHECK-NEXT:
;; CHECK-NEXT: Tool options:
;; CHECK-NEXT: -------------
;; CHECK-NEXT:
;; CHECK-NEXT:   --mvp-features,-mvp                  Disable all non-MVP features
;; CHECK-NEXT:
;; CHECK-NEXT:   --all-features,-all                  Enable all features
;; CHECK-NEXT:
;; CHECK-NEXT:   --detect-features                    (deprecated - this flag does nothing)
;; CHECK-NEXT:
;; CHECK-NEXT:   --quiet,-q                           Emit less verbose output and hide trivial
;; CHECK-NEXT:                                        warnings.
;; CHECK-NEXT:
;; CHECK-NEXT:   --experimental-poppy                 Parse wast files as Poppy IR for testing
;; CHECK-NEXT:                                        purposes.
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-sign-ext                    Enable sign extension operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-sign-ext                   Disable sign extension operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-threads                     Enable atomic operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-threads                    Disable atomic operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-mutable-globals             Enable mutable globals
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-mutable-globals            Disable mutable globals
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-nontrapping-float-to-int    Enable nontrapping float-to-int
;; CHECK-NEXT:                                        operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-nontrapping-float-to-int   Disable nontrapping float-to-int
;; CHECK-NEXT:                                        operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-simd                        Enable SIMD operations and types
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-simd                       Disable SIMD operations and types
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-bulk-memory                 Enable bulk memory operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-bulk-memory                Disable bulk memory operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-exception-handling          Enable exception handling operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-exception-handling         Disable exception handling operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-tail-call                   Enable tail call operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-tail-call                  Disable tail call operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-reference-types             Enable reference types
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-reference-types            Disable reference types
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-multivalue                  Enable multivalue functions
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-multivalue                 Disable multivalue functions
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-gc                          Enable garbage collection
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-gc                         Disable garbage collection
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-memory64                    Enable memory64
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-memory64                   Disable memory64
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-relaxed-simd                Enable relaxed SIMD
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-relaxed-simd               Disable relaxed SIMD
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-extended-const              Enable extended const expressions
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-extended-const             Disable extended const expressions
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-strings                     Enable strings
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-strings                    Disable strings
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-multimemory                 Enable multimemory
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-multimemory                Disable multimemory
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-typed-continuations         Enable typed continuations
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-typed-continuations        Disable typed continuations
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-shared-everything           Enable shared-everything threads
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-shared-everything          Disable shared-everything threads
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-fp16                        Enable float 16 operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-fp16                       Disable float 16 operations
;; CHECK-NEXT:
;; CHECK-NEXT:   --enable-typed-function-references   Deprecated compatibility flag
;; CHECK-NEXT:
;; CHECK-NEXT:   --disable-typed-function-references  Deprecated compatibility flag
;; CHECK-NEXT:
;; CHECK-NEXT:   --no-validation,-n                   Disables validation, assumes inputs are
;; CHECK-NEXT:                                        correct
;; CHECK-NEXT:
;; CHECK-NEXT:   --pass-arg,-pa                       An argument passed along to optimization
;; CHECK-NEXT:                                        passes being run. Must be in the form
;; CHECK-NEXT:                                        KEY@VALUE.  If KEY is the name of a pass
;; CHECK-NEXT:                                        then it applies to the closest instance
;; CHECK-NEXT:                                        of that pass before us. If KEY is not the
;; CHECK-NEXT:                                        name of a pass then it is a global option
;; CHECK-NEXT:                                        that applies to all pass instances that
;; CHECK-NEXT:                                        read it.
;; CHECK-NEXT:
;; CHECK-NEXT:   --closed-world,-cw                   Assume code outside of the module does
;; CHECK-NEXT:                                        not inspect or interact with GC and
;; CHECK-NEXT:                                        function references, even if they are
;; CHECK-NEXT:                                        passed out. The outside may hold on to
;; CHECK-NEXT:                                        them and pass them back in, but not
;; CHECK-NEXT:                                        inspect their contents or call them.
;; CHECK-NEXT:
;; CHECK-NEXT:   --preserve-type-order                Preserve the order of types from the
;; CHECK-NEXT:                                        input (useful for debugging and testing)
;; CHECK-NEXT:
;; CHECK-NEXT:   --generate-stack-ir                  generate StackIR during writing
;; CHECK-NEXT:
;; CHECK-NEXT:   --optimize-stack-ir                  optimize StackIR during writing
;; CHECK-NEXT:
;; CHECK-NEXT:   --print-stack-ir                     print StackIR during writing
;; CHECK-NEXT:
;; CHECK-NEXT:
;; CHECK-NEXT: General options:
;; CHECK-NEXT: ----------------
;; CHECK-NEXT:
;; CHECK-NEXT:   --version                            Output version information and exit
;; CHECK-NEXT:
;; CHECK-NEXT:   --help,-h                            Show this help message and exit
;; CHECK-NEXT:
;; CHECK-NEXT:   --debug,-d                           Print debug information to stderr
;; CHECK-NEXT:
