mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
81bb5f99ad
The data layout strings do not have any effect on llc tests and will become misleadingly out of date as we continue to update the canonical data layout, so remove them from the tests. Differential Revision: https://reviews.llvm.org/D105842
114 lines
3.3 KiB
LLVM
114 lines
3.3 KiB
LLVM
; RUN: llc < %s | FileCheck %s --check-prefixes CHECK,ATTRS
|
|
; RUN: llc < %s -mattr=+simd128 | FileCheck %s --check-prefixes CHECK,SIMD128
|
|
; RUN: llc < %s -mcpu=bleeding-edge | FileCheck %s --check-prefixes CHECK,BLEEDING-EDGE
|
|
|
|
; Test that codegen emits target features from the command line or
|
|
; function attributes correctly and that features are enabled for the
|
|
; entire module if they are enabled for any function in the module.
|
|
|
|
target triple = "wasm32-unknown-unknown"
|
|
|
|
define void @fn_atomics(i32* %p1, float %f2) #0 {
|
|
%a = atomicrmw min i32* undef, i32 42 seq_cst
|
|
%v = fptoui float %f2 to i32
|
|
store i32 %v, i32* %p1
|
|
ret void
|
|
}
|
|
|
|
define void @fn_nontrapping_fptoint(i32* %p1, float %f2) #1 {
|
|
%a = atomicrmw min i32* undef, i32 42 seq_cst
|
|
%v = fptoui float %f2 to i32
|
|
store i32 %v, i32* %p1
|
|
ret void
|
|
}
|
|
|
|
define void @fn_reference_types() #2 {
|
|
ret void
|
|
}
|
|
|
|
attributes #0 = { "target-features"="+atomics" }
|
|
attributes #1 = { "target-features"="+nontrapping-fptoint" }
|
|
attributes #2 = { "target-features"="+reference-types" }
|
|
|
|
; CHECK-LABEL: fn_atomics:
|
|
|
|
; Expanded atomicrmw min
|
|
; ATTRS: loop
|
|
; CHECK: i32.atomic.rmw.cmpxchg
|
|
; ATTRS: end_loop
|
|
|
|
; nontrapping fptoint
|
|
; CHECK: i32.trunc_sat_f32_u
|
|
; ATTRS: i32.store
|
|
|
|
; `fn_nontrapping_fptoint` should be the same as `fn_atomics`
|
|
; CHECK-LABEL: fn_nontrapping_fptoint:
|
|
|
|
; Expanded atomicrmw min
|
|
; ATTRS: loop
|
|
; CHECK: i32.atomic.rmw.cmpxchg
|
|
; ATTRS: end_loop
|
|
|
|
; nontrapping fptoint
|
|
; CHECK: i32.trunc_sat_f32_u
|
|
; ATTRS: i32.store
|
|
|
|
; CHECK-LABEL: .custom_section.target_features,"",@
|
|
|
|
; +atomics, +nontrapping-fptoint, +reference-types
|
|
; ATTRS-NEXT: .int8 3
|
|
; ATTRS-NEXT: .int8 43
|
|
; ATTRS-NEXT: .int8 7
|
|
; ATTRS-NEXT: .ascii "atomics"
|
|
; ATTRS-NEXT: .int8 43
|
|
; ATTRS-NEXT: .int8 19
|
|
; ATTRS-NEXT: .ascii "nontrapping-fptoint"
|
|
; ATTRS-NEXT: .int8 43
|
|
; ATTRS-NEXT: .int8 15
|
|
; ATTRS-NEXT: .ascii "reference-types"
|
|
|
|
; +atomics, +nontrapping-fptoint, +reference-types, +simd128
|
|
; SIMD128-NEXT: .int8 4
|
|
; SIMD128-NEXT: .int8 43
|
|
; SIMD128-NEXT: .int8 7
|
|
; SIMD128-NEXT: .ascii "atomics"
|
|
; SIMD128-NEXT: .int8 43
|
|
; SIMD128-NEXT: .int8 19
|
|
; SIMD128-NEXT: .ascii "nontrapping-fptoint"
|
|
; SIMD128-NEXT: .int8 43
|
|
; SIMD128-NEXT: .int8 15
|
|
; SIMD128-NEXT: .ascii "reference-types"
|
|
; SIMD128-NEXT: .int8 43
|
|
; SIMD128-NEXT: .int8 7
|
|
; SIMD128-NEXT: .ascii "simd128"
|
|
|
|
; +atomics, +bulk-memory, +mutable-globals, +nontrapping-fptoint,
|
|
; +reference-types, +sign-ext, +simd128, +tail-call
|
|
; BLEEDING-EDGE-NEXT: .int8 8
|
|
; 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 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 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"
|
|
|
|
; CHECK-NEXT: .text
|