This updates the list of features in 'generic' and 'bleeding-edge' CPUs
in the backend to match
4e0a0eae58/clang/lib/Basic/Targets/WebAssembly.cpp (L150-L178)
This updates existing CodeGen tests in a way that, if a test has
separate RUN lines for a reference-types test and a non-reference-types
test, I added -mattr=-reference-types to the no-reftype test's RUN
command line. I didn't delete existing -mattr=+reference-types lines in
reftype tests because having it helps readability.
Also, when tests is not really about reference-types but they have to
updated because they happen to contain call_indirect lines because now
call_indirect will take __indirect_function_table as an argument, I just
added the table argument to the expected output.
`target-features-cpus.ll` has been updated reflecting the newly added
features.
78 lines
2.9 KiB
LLVM
78 lines
2.9 KiB
LLVM
; RUN: llc < %s -mcpu=mvp | FileCheck %s --check-prefixes MVP
|
|
; RUN: llc < %s -mcpu=generic | FileCheck %s --check-prefixes GENERIC
|
|
; RUN: llc < %s | FileCheck %s --check-prefixes GENERIC
|
|
; RUN: llc < %s -mcpu=bleeding-edge | FileCheck %s --check-prefixes BLEEDING-EDGE
|
|
|
|
; Test that the target features section contains the correct set of features
|
|
; depending on -mcpu= options.
|
|
|
|
target triple = "wasm32-unknown-unknown"
|
|
|
|
; mvp: should not contain the target features section
|
|
; MVP-NOT: .custom_section.target_features,"",@
|
|
|
|
; generic: +multivalue, +mutable-globals, +reference-types, +sign-ext
|
|
; GENERIC-LABEL: .custom_section.target_features,"",@
|
|
; GENERIC-NEXT: .int8 4
|
|
; GENERIC-NEXT: .int8 43
|
|
; GENERIC-NEXT: .int8 10
|
|
; GENERIC-NEXT: .ascii "multivalue"
|
|
; GENERIC-NEXT: .int8 43
|
|
; GENERIC-NEXT: .int8 15
|
|
; GENERIC-NEXT: .ascii "mutable-globals"
|
|
; GENERIC-NEXT: .int8 43
|
|
; GENERIC-NEXT: .int8 15
|
|
; GENERIC-NEXT: .ascii "reference-types"
|
|
; GENERIC-NEXT: .int8 43
|
|
; GENERIC-NEXT: .int8 8
|
|
; GENERIC-NEXT: .ascii "sign-ext"
|
|
|
|
; bleeding-edge: +atomics, +bulk-memory, +exception-handling, +extended-const,
|
|
; +half-precision, +multimemory, +multivalue, +mutable-globals,
|
|
; +nontrapping-fptoint, +relaxed-simd, +reference-types,
|
|
; +simd128, +sign-ext, +tail-call
|
|
; BLEEDING-EDGE-LABEL: .section .custom_section.target_features,"",@
|
|
; BLEEDING-EDGE-NEXT: .int8 14
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 7
|
|
; BLEEDING-EDGE-NEXT: .ascii "atomics"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 11
|
|
; BLEEDING-EDGE-NEXT: .ascii "bulk-memory"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 18
|
|
; BLEEDING-EDGE-NEXT: .ascii "exception-handling"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 14
|
|
; BLEEDING-EDGE-NEXT: .ascii "extended-const"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 14
|
|
; BLEEDING-EDGE-NEXT: .ascii "half-precision"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 11
|
|
; BLEEDING-EDGE-NEXT: .ascii "multimemory"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 10
|
|
; BLEEDING-EDGE-NEXT: .ascii "multivalue"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 15
|
|
; BLEEDING-EDGE-NEXT: .ascii "mutable-globals"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 19
|
|
; BLEEDING-EDGE-NEXT: .ascii "nontrapping-fptoint"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 15
|
|
; BLEEDING-EDGE-NEXT: .ascii "reference-types"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 12
|
|
; BLEEDING-EDGE-NEXT: .ascii "relaxed-simd"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 8
|
|
; BLEEDING-EDGE-NEXT: .ascii "sign-ext"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 7
|
|
; BLEEDING-EDGE-NEXT: .ascii "simd128"
|
|
; BLEEDING-EDGE-NEXT: .int8 43
|
|
; BLEEDING-EDGE-NEXT: .int8 9
|
|
; BLEEDING-EDGE-NEXT: .ascii "tail-call"
|