summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/WebAssembly/target-features-tls.ll26
-rw-r--r--llvm/test/CodeGen/WebAssembly/target-features.ll63
-rw-r--r--llvm/test/MC/WebAssembly/array-fill.ll5
-rw-r--r--llvm/test/MC/WebAssembly/assembler-binary.ll5
-rw-r--r--llvm/test/MC/WebAssembly/bss.ll5
-rw-r--r--llvm/test/MC/WebAssembly/comdat.ll5
-rw-r--r--llvm/test/MC/WebAssembly/debug-info.ll6
-rw-r--r--llvm/test/MC/WebAssembly/explicit-sections.ll5
-rw-r--r--llvm/test/MC/WebAssembly/global-ctor-dtor.ll5
-rw-r--r--llvm/test/MC/WebAssembly/visibility.ll5
-rw-r--r--llvm/test/MC/WebAssembly/weak-alias.ll5
-rw-r--r--llvm/test/MC/WebAssembly/weak.ll5
12 files changed, 70 insertions, 70 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/target-features-tls.ll b/llvm/test/CodeGen/WebAssembly/target-features-tls.ll
new file mode 100644
index 00000000000..a5c08f850e2
--- /dev/null
+++ b/llvm/test/CodeGen/WebAssembly/target-features-tls.ll
@@ -0,0 +1,26 @@
+; RUN: llc < %s -mattr=-atomics | FileCheck %s --check-prefixes CHECK,NO-ATOMICS
+; RUN: llc < %s -mattr=+atomics | FileCheck %s --check-prefixes CHECK,ATOMICS
+
+; Test that the target features section contains -atomics or +atomics
+; for modules that have thread local storage in their source.
+
+target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
+target triple = "wasm32-unknown-unknown"
+
+@foo = internal thread_local global i32 0
+
+; CHECK-LABEL: .custom_section.target_features,"",@
+
+; -atomics
+; NO-ATOMICS-NEXT: .int8 1
+; NO-ATOMICS-NEXT: .int8 45
+; NO-ATOMICS-NEXT: .int8 7
+; NO-ATOMICS-NEXT: .ascii "atomics"
+; NO-ATOMICS-NEXT: .bss.foo,"",@
+
+; +atomics
+; ATOMICS-NEXT: .int8 1
+; ATOMICS-NEXT: .int8 43
+; ATOMICS-NEXT: .int8 7
+; ATOMICS-NEXT: .ascii "atomics"
+; ATOMICS-NEXT: .tbss.foo,"",@
diff --git a/llvm/test/CodeGen/WebAssembly/target-features.ll b/llvm/test/CodeGen/WebAssembly/target-features.ll
index f262657a56d..7ce7fcf0b7c 100644
--- a/llvm/test/CodeGen/WebAssembly/target-features.ll
+++ b/llvm/test/CodeGen/WebAssembly/target-features.ll
@@ -1,38 +1,69 @@
; RUN: llc < %s | FileCheck %s --check-prefixes CHECK,ATTRS
; RUN: llc < %s -mattr=+simd128 | FileCheck %s --check-prefixes CHECK,SIMD128
-; RUN; llc < %s -mattr=+atomics | FileCheck %s --check-prefixes CHECK,ATOMICS
; 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.
+; function attributes correctly and that features are enabled for the
+; entire module if they are enabled for any function in the module.
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
target triple = "wasm32-unknown-unknown"
-define void @foo() #0 {
+define void @foo(i32* %p1) #0 {
+ %a = atomicrmw min i32* undef, i32 42 seq_cst
+ %v = fptoui float undef to i32
+ store i32 %v, i32* %p1
ret void
}
-define void @bar() #1 {
+define void @bar(i32* %p1) #1 {
+ %a = atomicrmw min i32* undef, i32 42 seq_cst
+ %v = fptoui float undef to i32
+ store i32 %v, i32* %p1
ret void
}
-attributes #0 = { "target-features"="+sign-ext" }
+attributes #0 = { "target-features"="+atomics" }
attributes #1 = { "target-features"="+nontrapping-fptoint" }
+
+; CHECK-LABEL: foo:
+
+; Expanded atomicrmw min
+; ATTRS: loop
+; ATTRS: i32.atomic.rmw.cmpxchg
+; SIMD128-NOT: i32.atomic.rmw.cmpxchg
+; ATTRS: end_loop
+
+; nontrapping fptoint
+; ATTRS: i32.trunc_sat_f32_u
+; SIMD128-NOT: i32.trunc_sat_f32_u
+; ATTRS: i32.store
+
+; `bar` should be the same as `foo`
+; CHECK-LABEL: bar:
+
+; Expanded atomicrmw min
+; ATTRS: loop
+; ATTRS: i32.atomic.rmw.cmpxchg
+; SIMD128-NOT: i32.atomic.rmw.cmpxchg
+; ATTRS: end_loop
+
+; nontrapping fptoint
+; ATTRS: i32.trunc_sat_f32_u
+; SIMD128-NOT: i32.trunc_sat_f32_u
+; ATTRS: i32.store
+
; CHECK-LABEL: .custom_section.target_features,"",@
-; -atomics, +sign_ext
-; ATTRS-NEXT: .int8 3
-; ATTRS-NEXT: .int8 45
+; +atomics, +nontrapping-fptoint
+; ATTRS-NEXT: .int8 2
+; 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 8
-; ATTRS-NEXT: .ascii "sign-ext"
; -atomics, +simd128
; SIMD128-NEXT: .int8 2
@@ -43,15 +74,9 @@ attributes #1 = { "target-features"="+nontrapping-fptoint" }
; SIMD128-NEXT: .int8 7
; SIMD128-NEXT: .ascii "simd128"
-; =atomics
-; ATOMICS-NEXT: .int8 1
-; ATOMICS-NEXT: .int8 61
-; ATOMICS-NEXT: .int8 7
-; ATOMICS-NEXT: .ascii "atomics"
-
-; =atomics, +nontrapping-fptoint, +sign-ext, +simd128
+; +atomics, +nontrapping-fptoint, +sign-ext, +simd128
; BLEEDING-EDGE-NEXT: .int8 4
-; BLEEDING-EDGE-NEXT: .int8 61
+; BLEEDING-EDGE-NEXT: .int8 43
; BLEEDING-EDGE-NEXT: .int8 7
; BLEEDING-EDGE-NEXT: .ascii "atomics"
; BLEEDING-EDGE-NEXT: .int8 43
diff --git a/llvm/test/MC/WebAssembly/array-fill.ll b/llvm/test/MC/WebAssembly/array-fill.ll
index 9e2eba4a3f2..61cdb91368c 100644
--- a/llvm/test/MC/WebAssembly/array-fill.ll
+++ b/llvm/test/MC/WebAssembly/array-fill.ll
@@ -24,9 +24,4 @@ target triple = "wasm32-unknown-unknown"
; CHECK-NEXT: Name: .data
; CHECK-NEXT: Alignment: 0
; CHECK-NEXT: Flags: [ ]
-; CHECK-NEXT: - Type: CUSTOM
-; CHECK-NEXT: Name: target_features
-; CHECK-NEXT: Features:
-; CHECK-NEXT: - Prefix: DISALLOWED
-; CHECK-NEXT: Name: atomics
; CHECK-NEXT: ...
diff --git a/llvm/test/MC/WebAssembly/assembler-binary.ll b/llvm/test/MC/WebAssembly/assembler-binary.ll
index d838320aeed..3683d63e435 100644
--- a/llvm/test/MC/WebAssembly/assembler-binary.ll
+++ b/llvm/test/MC/WebAssembly/assembler-binary.ll
@@ -87,9 +87,4 @@ entry:
; CHECK-NEXT: Name: bar
; CHECK-NEXT: Flags: [ UNDEFINED ]
; CHECK-NEXT: Function: 0
-; CHECK-NEXT: - Type: CUSTOM
-; CHECK-NEXT: Name: target_features
-; CHECK-NEXT: Features:
-; CHECK-NEXT: - Prefix: DISALLOWED
-; CHECK-NEXT: Name: atomics
; CHECK-NEXT: ...
diff --git a/llvm/test/MC/WebAssembly/bss.ll b/llvm/test/MC/WebAssembly/bss.ll
index de8b9f88ec3..b3d95a161d1 100644
--- a/llvm/test/MC/WebAssembly/bss.ll
+++ b/llvm/test/MC/WebAssembly/bss.ll
@@ -78,9 +78,4 @@ target triple = "wasm32-unknown-unknown"
; CHECK-NEXT: Name: .bss.bar
; CHECK-NEXT: Alignment: 0
; CHECK-NEXT: Flags: [ ]
-; CHECK-NEXT: - Type: CUSTOM
-; CHECK-NEXT: Name: target_features
-; CHECK-NEXT: Features:
-; CHECK-NEXT: - Prefix: DISALLOWED
-; CHECK-NEXT: Name: atomics
; CHECK-NEXT: ...
diff --git a/llvm/test/MC/WebAssembly/comdat.ll b/llvm/test/MC/WebAssembly/comdat.ll
index 0327a8bed3f..18905890776 100644
--- a/llvm/test/MC/WebAssembly/comdat.ll
+++ b/llvm/test/MC/WebAssembly/comdat.ll
@@ -119,9 +119,4 @@ define linkonce_odr i32 @sharedFn() #1 comdat($sharedComdat) {
; CHECK-NEXT: Index: 3
; CHECK-NEXT: - Kind: DATA
; CHECK-NEXT: Index: 0
-; CHECK-NEXT: - Type: CUSTOM
-; CHECK-NEXT: Name: target_features
-; CHECK-NEXT: Features:
-; CHECK-NEXT: - Prefix: DISALLOWED
-; CHECK-NEXT: Name: atomics
; CHECK-NEXT: ...
diff --git a/llvm/test/MC/WebAssembly/debug-info.ll b/llvm/test/MC/WebAssembly/debug-info.ll
index f76bba93c9b..fe4a4cf6983 100644
--- a/llvm/test/MC/WebAssembly/debug-info.ll
+++ b/llvm/test/MC/WebAssembly/debug-info.ll
@@ -130,12 +130,6 @@
; CHECK-NEXT: Offset: 1021
; CHECK-NEXT: Name: producers
; CHECK-NEXT: }
-; CHECK-NEXT: Section {
-; CHECK-NEXT: Type: CUSTOM (0x0)
-; CHECK-NEXT: Size: 10
-; CHECK-NEXT: Offset: 1114
-; CHECK-NEXT: Name: target_features
-; CHECK-NEXT: }
; CHECK-NEXT:]
; CHECK-NEXT:Relocations [
; CHECK-NEXT: Section (6) DATA {
diff --git a/llvm/test/MC/WebAssembly/explicit-sections.ll b/llvm/test/MC/WebAssembly/explicit-sections.ll
index f43189ad247..b94190f8143 100644
--- a/llvm/test/MC/WebAssembly/explicit-sections.ll
+++ b/llvm/test/MC/WebAssembly/explicit-sections.ll
@@ -70,9 +70,4 @@ target triple = "wasm32-unknown-unknown"
; CHECK-NEXT: Name: .sec2
; CHECK-NEXT: Alignment: 3
; CHECK-NEXT: Flags: [ ]
-; CHECK-NEXT: - Type: CUSTOM
-; CHECK-NEXT: Name: target_features
-; CHECK-NEXT: Features:
-; CHECK-NEXT: - Prefix: DISALLOWED
-; CHECK-NEXT: Name: atomics
; CHECK-NEXT: ...
diff --git a/llvm/test/MC/WebAssembly/global-ctor-dtor.ll b/llvm/test/MC/WebAssembly/global-ctor-dtor.ll
index 9b384e3ad0f..df7ff92acff 100644
--- a/llvm/test/MC/WebAssembly/global-ctor-dtor.ll
+++ b/llvm/test/MC/WebAssembly/global-ctor-dtor.ll
@@ -181,9 +181,4 @@ declare void @func3()
; CHECK-NEXT: Symbol: 10
; CHECK-NEXT: - Priority: 65535
; CHECK-NEXT: Symbol: 7
-; CHECK-NEXT: - Type: CUSTOM
-; CHECK-NEXT: Name: target_features
-; CHECK-NEXT: Features:
-; CHECK-NEXT: - Prefix: DISALLOWED
-; CHECK-NEXT: Name: atomics
; CHECK-NEXT: ...
diff --git a/llvm/test/MC/WebAssembly/visibility.ll b/llvm/test/MC/WebAssembly/visibility.ll
index 63b46ebf2e0..5bb757b28f1 100644
--- a/llvm/test/MC/WebAssembly/visibility.ll
+++ b/llvm/test/MC/WebAssembly/visibility.ll
@@ -25,9 +25,4 @@ entry:
; CHECK-NEXT: Name: hiddenVis
; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; CHECK-NEXT: Function: 1
-; CHECK-NEXT: - Type: CUSTOM
-; CHECK-NEXT: Name: target_features
-; CHECK-NEXT: Features:
-; CHECK-NEXT: - Prefix: DISALLOWED
-; CHECK-NEXT: Name: atomics
; CHECK-NEXT: ...
diff --git a/llvm/test/MC/WebAssembly/weak-alias.ll b/llvm/test/MC/WebAssembly/weak-alias.ll
index cf5783a017e..7abdc79b569 100644
--- a/llvm/test/MC/WebAssembly/weak-alias.ll
+++ b/llvm/test/MC/WebAssembly/weak-alias.ll
@@ -207,11 +207,6 @@ entry:
; CHECK-NEXT: Name: .data.alias_address
; CHECK-NEXT: Alignment: 3
; CHECK-NEXT: Flags: [ ]
-; CHECK-NEXT: - Type: CUSTOM
-; CHECK-NEXT: Name: target_features
-; CHECK-NEXT: Features:
-; CHECK-NEXT: - Prefix: DISALLOWED
-; CHECK-NEXT: Name: atomics
; CHECK-NEXT: ...
; CHECK-SYMS: SYMBOL TABLE:
diff --git a/llvm/test/MC/WebAssembly/weak.ll b/llvm/test/MC/WebAssembly/weak.ll
index 2278f97c89d..6a94ee627b6 100644
--- a/llvm/test/MC/WebAssembly/weak.ll
+++ b/llvm/test/MC/WebAssembly/weak.ll
@@ -30,9 +30,4 @@ entry:
; CHECK-NEXT: Kind: DATA
; CHECK-NEXT: Name: weak_external_data
; CHECK-NEXT: Flags: [ BINDING_WEAK, UNDEFINED ]
-; CHECK-NEXT: - Type: CUSTOM
-; CHECK-NEXT: Name: target_features
-; CHECK-NEXT: Features:
-; CHECK-NEXT: - Prefix: DISALLOWED
-; CHECK-NEXT: Name: atomics
; CHECK-NEXT: ...
OpenPOWER on IntegriCloud