[lld] fd1c894 - [lld][WebAssembly] Convert some lld tests to assembly
Sam Clegg via llvm-commits
llvm-commits at lists.llvm.org
Thu May 28 16:55:24 PDT 2020
Author: Sam Clegg
Date: 2020-05-28T16:52:01-07:00
New Revision: fd1c894a4a3690b2e500bfdf71194e9cc3f1b399
URL: https://github.com/llvm/llvm-project/commit/fd1c894a4a3690b2e500bfdf71194e9cc3f1b399
DIFF: https://github.com/llvm/llvm-project/commit/fd1c894a4a3690b2e500bfdf71194e9cc3f1b399.diff
LOG: [lld][WebAssembly] Convert some lld tests to assembly
When we originally wrote these tests we didn't have a stable and
fleshed out assembly format. Now we do so we should prefer that
over llvm ir for lld tests to avoid including more part of llvm
than necessary in order to run the test.
This change converts just 30 out of about 130 test files. More to
come when I have some more time.
Differential Revision: https://reviews.llvm.org/D80361
Added:
lld/test/wasm/Inputs/call-indirect.s
lld/test/wasm/Inputs/call-ret32.s
lld/test/wasm/Inputs/hello.s
lld/test/wasm/Inputs/hidden.s
lld/test/wasm/Inputs/import-attributes.s
lld/test/wasm/Inputs/optional-symbol.s
lld/test/wasm/Inputs/ret32.s
lld/test/wasm/Inputs/ret64.s
lld/test/wasm/Inputs/start.s
lld/test/wasm/Inputs/strong-symbol.s
lld/test/wasm/Inputs/weak-symbol1.s
lld/test/wasm/Inputs/weak-symbol2.s
lld/test/wasm/alias.s
lld/test/wasm/archive-no-index.s
lld/test/wasm/bss-only.s
lld/test/wasm/demangle.s
lld/test/wasm/entry-signature.s
lld/test/wasm/export-optional-lazy.test
lld/test/wasm/import-attribute-mismatch.s
lld/test/wasm/no-tls.ll
lld/test/wasm/optional-symbol.s
lld/test/wasm/symbol-type-mismatch.s
lld/test/wasm/version.s
Modified:
lld/test/wasm/archive-export.ll
lld/test/wasm/archive-weak-undefined.ll
lld/test/wasm/archive.ll
lld/test/wasm/call-indirect.ll
lld/test/wasm/compress-relocs.ll
lld/test/wasm/conflict.test
lld/test/wasm/data-layout.ll
lld/test/wasm/emit-relocs-fpic.s
lld/test/wasm/emit-relocs.ll
lld/test/wasm/export-empty.test
lld/test/wasm/export-table.test
lld/test/wasm/fatal-warnings.ll
lld/test/wasm/function-imports-first.ll
lld/test/wasm/function-imports.ll
lld/test/wasm/function-index.test
lld/test/wasm/global-base.test
lld/test/wasm/growable-table.test
lld/test/wasm/import-memory.test
lld/test/wasm/import-table.test
lld/test/wasm/invalid-stack-size.test
lld/test/wasm/large-memory.test
lld/test/wasm/load-undefined.test
lld/test/wasm/pic-static.ll
lld/test/wasm/relocatable.ll
lld/test/wasm/responsefile.test
lld/test/wasm/shared-needed.ll
lld/test/wasm/signature-mismatch-export.ll
lld/test/wasm/signature-mismatch-unknown.ll
lld/test/wasm/signature-mismatch-weak.ll
lld/test/wasm/signature-mismatch.ll
lld/test/wasm/stack-first.test
lld/test/wasm/strip-all.test
lld/test/wasm/strip-debug.test
lld/test/wasm/trace-symbol.ll
lld/test/wasm/trace.test
lld/test/wasm/undefined-entry.test
lld/test/wasm/visibility-hidden.ll
lld/test/wasm/weak-symbols.ll
lld/test/wasm/whole-archive.test
Removed:
lld/test/wasm/Inputs/call-indirect.ll
lld/test/wasm/Inputs/call-ret32.ll
lld/test/wasm/Inputs/hello.ll
lld/test/wasm/Inputs/hidden.ll
lld/test/wasm/Inputs/import-attributes.ll
lld/test/wasm/Inputs/optional-symbol.ll
lld/test/wasm/Inputs/ret32.ll
lld/test/wasm/Inputs/ret64.ll
lld/test/wasm/Inputs/start.ll
lld/test/wasm/Inputs/strong-symbol.ll
lld/test/wasm/Inputs/weak-symbol1.ll
lld/test/wasm/Inputs/weak-symbol2.ll
lld/test/wasm/alias.ll
lld/test/wasm/archive-no-index.ll
lld/test/wasm/bss-only.ll
lld/test/wasm/demangle.ll
lld/test/wasm/entry-signature.ll
lld/test/wasm/export-optional-lazy.ll
lld/test/wasm/import-attribute-mismatch.ll
lld/test/wasm/no-tls.test
lld/test/wasm/optional-symbol.ll
lld/test/wasm/symbol-type-mismatch.ll
lld/test/wasm/version.ll
################################################################################
diff --git a/lld/test/wasm/Inputs/call-indirect.ll b/lld/test/wasm/Inputs/call-indirect.ll
deleted file mode 100644
index 6afcf30c2515..000000000000
--- a/lld/test/wasm/Inputs/call-indirect.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
- at indirect_bar = internal local_unnamed_addr global i64 ()* @bar, align 4
- at indirect_foo = internal local_unnamed_addr global i32 ()* @foo, align 4
-
-declare i32 @foo() local_unnamed_addr
-
-define i64 @bar() {
-entry:
- ret i64 1
-}
-
-define void @call_bar_indirect() local_unnamed_addr #1 {
-entry:
- %0 = load i64 ()*, i64 ()** @indirect_bar, align 4
- %1 = load i32 ()*, i32 ()** @indirect_foo, align 4
- %call0 = tail call i64 %0() #2
- %call1 = tail call i32 %1() #2
- ret void
-}
diff --git a/lld/test/wasm/Inputs/call-indirect.s b/lld/test/wasm/Inputs/call-indirect.s
new file mode 100644
index 000000000000..c181aa19ad6b
--- /dev/null
+++ b/lld/test/wasm/Inputs/call-indirect.s
@@ -0,0 +1,28 @@
+ .globl bar
+bar:
+ .functype bar () -> (i64)
+ i64.const 1
+ end_function
+
+ .globl call_bar_indirect
+call_bar_indirect:
+ .functype call_bar_indirect () -> ()
+ i32.load indirect_bar
+ call_indirect () -> (i64)
+ drop
+ i32.load indirect_foo
+ call_indirect () -> (i32)
+ drop
+ end_function
+
+ .section .data.indirect_bar,"",@
+indirect_bar:
+ .int32 bar
+ .size indirect_bar, 4
+
+ .section .data.indirect_foo,"",@
+indirect_foo:
+ .int32 foo
+ .size indirect_foo, 4
+
+ .functype foo () -> (i32)
diff --git a/lld/test/wasm/Inputs/call-ret32.ll b/lld/test/wasm/Inputs/call-ret32.ll
deleted file mode 100644
index 90cbf9684573..000000000000
--- a/lld/test/wasm/Inputs/call-ret32.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
- at ret32_address = global i32 (float)* @ret32, align 4
-
-define hidden i32* @call_ret32() {
-entry:
- %call1 = call i32 @ret32(float 0.000000e+00)
- ret i32* bitcast (i32 (float)** @ret32_address to i32*)
-}
-
-declare i32 @ret32(float)
diff --git a/lld/test/wasm/Inputs/call-ret32.s b/lld/test/wasm/Inputs/call-ret32.s
new file mode 100644
index 000000000000..b0c812905917
--- /dev/null
+++ b/lld/test/wasm/Inputs/call-ret32.s
@@ -0,0 +1,16 @@
+ .globl call_ret32
+call_ret32:
+ .functype call_ret32 () -> (i32)
+ f32.const 0x0p0
+ call ret32
+ drop
+ i32.const ret32_address
+ end_function
+
+ .section .data.ret32_address,"",@
+ .globl ret32_address
+ret32_address:
+ .int32 ret32
+ .size ret32_address, 4
+
+ .functype ret32 (f32) -> (i32)
diff --git a/lld/test/wasm/Inputs/hello.ll b/lld/test/wasm/Inputs/hello.ll
deleted file mode 100644
index 675566861cc7..000000000000
--- a/lld/test/wasm/Inputs/hello.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
-; Wasm module generated from the following C code:
-; void puts(const char*);
-; void hello() { puts("hello\n"); }
-
- at hello_str = unnamed_addr constant [7 x i8] c"hello\0A\00", align 1
-
-; Function Attrs: nounwind
-define hidden void @hello() local_unnamed_addr #0 {
-entry:
- tail call void @puts(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @hello_str, i32 0, i32 0))
- ret void
-}
-
-; Function Attrs: nounwind
-declare void @puts(i8* nocapture readonly) local_unnamed_addr #1
diff --git a/lld/test/wasm/Inputs/hello.s b/lld/test/wasm/Inputs/hello.s
new file mode 100644
index 000000000000..b245262f9eba
--- /dev/null
+++ b/lld/test/wasm/Inputs/hello.s
@@ -0,0 +1,18 @@
+# asm generated by clang from the following C code:
+# void puts(const char*);
+# void hello() { puts("hello\n"); }
+
+ .globl hello
+hello:
+ .functype hello () -> ()
+ i32.const hello_str
+ call puts
+ end_function
+
+ .section .rodata.hello_str,"",@
+ .globl hello_str
+hello_str:
+ .asciz "hello\n"
+ .size hello_str, 7
+
+ .functype puts (i32) -> ()
diff --git a/lld/test/wasm/Inputs/hidden.ll b/lld/test/wasm/Inputs/hidden.ll
deleted file mode 100644
index 4af16b3b99ed..000000000000
--- a/lld/test/wasm/Inputs/hidden.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
-; Function Attrs: norecurse nounwind readnone
-define hidden i32 @archiveHidden() #0 {
-entry:
- ret i32 0
-}
-
-; Function Attrs: norecurse nounwind readnone
-define i32 @archiveDefault() #1 {
-entry:
- ret i32 0
-}
diff --git a/lld/test/wasm/Inputs/hidden.s b/lld/test/wasm/Inputs/hidden.s
new file mode 100644
index 000000000000..58b9f5988bfa
--- /dev/null
+++ b/lld/test/wasm/Inputs/hidden.s
@@ -0,0 +1,12 @@
+ .hidden archiveHidden
+ .globl archiveHidden
+archiveHidden:
+ .functype archiveHidden () -> (i32)
+ i32.const 0
+ end_function
+
+ .globl archiveDefault
+archiveDefault:
+ .functype archiveDefault () -> (i32)
+ i32.const 0
+ end_function
diff --git a/lld/test/wasm/Inputs/import-attributes.ll b/lld/test/wasm/Inputs/import-attributes.ll
deleted file mode 100644
index 27ee2774f221..000000000000
--- a/lld/test/wasm/Inputs/import-attributes.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
-define void @call_foo() {
- call void @foo();
- ret void
-}
-
-declare void @foo() #0
-
-attributes #0 = { "wasm-import-module"="baz" }
diff --git a/lld/test/wasm/Inputs/import-attributes.s b/lld/test/wasm/Inputs/import-attributes.s
new file mode 100644
index 000000000000..681b54fb78f3
--- /dev/null
+++ b/lld/test/wasm/Inputs/import-attributes.s
@@ -0,0 +1,8 @@
+ .globl call_foo
+call_foo:
+ .functype call_foo () -> ()
+ call foo
+ end_function
+
+ .functype foo () -> ()
+ .import_module foo, baz
diff --git a/lld/test/wasm/Inputs/optional-symbol.ll b/lld/test/wasm/Inputs/optional-symbol.ll
deleted file mode 100644
index d39a8a4db637..000000000000
--- a/lld/test/wasm/Inputs/optional-symbol.ll
+++ /dev/null
@@ -1,7 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
- at __dso_handle = external global i8*
-
-define i8** @get_optional() {
- ret i8** @__dso_handle
-}
diff --git a/lld/test/wasm/Inputs/optional-symbol.s b/lld/test/wasm/Inputs/optional-symbol.s
new file mode 100644
index 000000000000..511a0d82a796
--- /dev/null
+++ b/lld/test/wasm/Inputs/optional-symbol.s
@@ -0,0 +1,7 @@
+# __dso_handle is an linker-generated symbol that is included only when needed.
+
+ .globl get_optional
+get_optional:
+ .functype get_optional () -> (i32)
+ i32.const __dso_handle
+ end_function
diff --git a/lld/test/wasm/Inputs/ret32.ll b/lld/test/wasm/Inputs/ret32.ll
deleted file mode 100644
index 674b34b66499..000000000000
--- a/lld/test/wasm/Inputs/ret32.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
-define hidden i32 @ret32(float %arg) {
-entry:
- ret i32 0
-}
diff --git a/lld/test/wasm/Inputs/ret32.s b/lld/test/wasm/Inputs/ret32.s
new file mode 100644
index 000000000000..5233455917e6
--- /dev/null
+++ b/lld/test/wasm/Inputs/ret32.s
@@ -0,0 +1,6 @@
+ .hidden ret32
+ .globl ret32
+ret32:
+ .functype ret32 (f32) -> (i32)
+ i32.const 0
+ end_function
diff --git a/lld/test/wasm/Inputs/ret64.ll b/lld/test/wasm/Inputs/ret64.ll
deleted file mode 100644
index c1dd5e55fee0..000000000000
--- a/lld/test/wasm/Inputs/ret64.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
-define hidden i64 @ret64(double %arg) {
-entry:
- ret i64 1
-}
diff --git a/lld/test/wasm/Inputs/ret64.s b/lld/test/wasm/Inputs/ret64.s
new file mode 100644
index 000000000000..4ce85495a0fd
--- /dev/null
+++ b/lld/test/wasm/Inputs/ret64.s
@@ -0,0 +1,6 @@
+ .hidden ret64
+ .globl ret64
+ret64:
+ .functype ret64 (f64) -> (i64)
+ i64.const 1
+ end_function
diff --git a/lld/test/wasm/Inputs/start.ll b/lld/test/wasm/Inputs/start.ll
deleted file mode 100644
index e2629659bf50..000000000000
--- a/lld/test/wasm/Inputs/start.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
-define void @_start() local_unnamed_addr {
-entry:
- ret void
-}
diff --git a/lld/test/wasm/Inputs/start.s b/lld/test/wasm/Inputs/start.s
new file mode 100644
index 000000000000..c793185ca1bb
--- /dev/null
+++ b/lld/test/wasm/Inputs/start.s
@@ -0,0 +1,4 @@
+ .globl _start
+_start:
+ .functype _start () -> ()
+ end_function
diff --git a/lld/test/wasm/Inputs/strong-symbol.ll b/lld/test/wasm/Inputs/strong-symbol.ll
deleted file mode 100644
index cc2aa8ab5d26..000000000000
--- a/lld/test/wasm/Inputs/strong-symbol.ll
+++ /dev/null
@@ -1,6 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
-define i64 @weakFn() #0 {
-entry:
- ret i64 1
-}
diff --git a/lld/test/wasm/Inputs/strong-symbol.s b/lld/test/wasm/Inputs/strong-symbol.s
new file mode 100644
index 000000000000..92200759e16c
--- /dev/null
+++ b/lld/test/wasm/Inputs/strong-symbol.s
@@ -0,0 +1,6 @@
+ .globl weakFn
+ .type weakFn, at function
+weakFn:
+ .functype weakFn () -> (i64)
+ i64.const 1
+ end_function
diff --git a/lld/test/wasm/Inputs/weak-symbol1.ll b/lld/test/wasm/Inputs/weak-symbol1.ll
deleted file mode 100644
index 6e394ff91d0c..000000000000
--- a/lld/test/wasm/Inputs/weak-symbol1.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
-define weak i32 @weakFn() #0 {
-entry:
- ret i32 1
-}
-
-define i32 @exportWeak1() {
-entry:
- ret i32 ptrtoint (i32 ()* @weakFn to i32)
-}
-
- at weakGlobal = weak global i32 1
diff --git a/lld/test/wasm/Inputs/weak-symbol1.s b/lld/test/wasm/Inputs/weak-symbol1.s
new file mode 100644
index 000000000000..eefdb248cc6b
--- /dev/null
+++ b/lld/test/wasm/Inputs/weak-symbol1.s
@@ -0,0 +1,17 @@
+ .weak weakFn
+weakFn:
+ .functype weakFn () -> (i32)
+ i32.const 1
+ end_function
+
+ .globl exportWeak1
+exportWeak1:
+ .functype exportWeak1 () -> (i32)
+ i32.const weakFn
+ end_function
+
+ .section .data.weakGlobal,"",@
+ .weak weakGlobal
+weakGlobal:
+ .int32 1
+ .size weakGlobal, 4
diff --git a/lld/test/wasm/Inputs/weak-symbol2.ll b/lld/test/wasm/Inputs/weak-symbol2.ll
deleted file mode 100644
index e9c30c18f7de..000000000000
--- a/lld/test/wasm/Inputs/weak-symbol2.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-target triple = "wasm32-unknown-unknown"
-
-define weak i32 @weakFn() #0 {
-entry:
- ret i32 2
-}
-
-define i32 @exportWeak2() {
-entry:
- ret i32 ptrtoint (i32 ()* @weakFn to i32)
-}
-
- at weakGlobal = weak global i32 2
diff --git a/lld/test/wasm/Inputs/weak-symbol2.s b/lld/test/wasm/Inputs/weak-symbol2.s
new file mode 100644
index 000000000000..d044b87b96da
--- /dev/null
+++ b/lld/test/wasm/Inputs/weak-symbol2.s
@@ -0,0 +1,17 @@
+ .weak weakFn
+weakFn:
+ .functype weakFn () -> (i32)
+ i32.const 2
+ end_function
+
+ .globl exportWeak2
+exportWeak2:
+ .functype exportWeak2 () -> (i32)
+ i32.const weakFn
+ end_function
+
+ .section .data.weakGlobal,"",@
+ .weak weakGlobal
+weakGlobal:
+ .int32 2
+ .size weakGlobal, 4
diff --git a/lld/test/wasm/alias.ll b/lld/test/wasm/alias.ll
deleted file mode 100644
index 9927ba4c2225..000000000000
--- a/lld/test/wasm/alias.ll
+++ /dev/null
@@ -1,65 +0,0 @@
-; RUN: llc -filetype=obj -o %t.o %s
-; RUN: wasm-ld --export=start_alias %t.o -o %t.wasm
-; RUN: obj2yaml %t.wasm | FileCheck %s
-
-target triple = "wasm32-unknown-unknown"
-
- at start_alias = alias void (), void ()* @_start
-
-; Function Attrs: nounwind uwtable
-define void @_start() local_unnamed_addr #1 {
-entry:
- ret void
-}
-
-; CHECK: --- !WASM
-; CHECK-NEXT: FileHeader:
-; CHECK-NEXT: Version: 0x00000001
-; CHECK-NEXT: Sections:
-; CHECK-NEXT: - Type: TYPE
-; CHECK-NEXT: Signatures:
-; CHECK-NEXT: - Index: 0
-; CHECK-NEXT: ParamTypes:
-; CHECK-NEXT: ReturnTypes: []
-; CHECK-NEXT: - Type: FUNCTION
-; CHECK-NEXT: FunctionTypes: [ 0 ]
-; CHECK-NEXT: - Type: TABLE
-; CHECK-NEXT: Tables:
-; CHECK-NEXT: - ElemType: FUNCREF
-; CHECK-NEXT: Limits:
-; CHECK-NEXT: Flags: [ HAS_MAX ]
-; CHECK-NEXT: Initial: 0x00000001
-; CHECK-NEXT: Maximum: 0x00000001
-; CHECK-NEXT: - Type: MEMORY
-; CHECK-NEXT: Memories:
-; CHECK-NEXT: - Initial: 0x00000002
-; CHECK-NEXT: - Type: GLOBAL
-; CHECK-NEXT: Globals:
-; CHECK-NEXT: - Index: 0
-; CHECK-NEXT: Type: I32
-; CHECK-NEXT: Mutable: true
-; CHECK-NEXT: InitExpr:
-; CHECK-NEXT: Opcode: I32_CONST
-; CHECK-NEXT: Value: 66560
-; CHECK-NEXT: - Type: EXPORT
-; CHECK-NEXT: Exports:
-; CHECK-NEXT: - Name: memory
-; CHECK-NEXT: Kind: MEMORY
-; CHECK-NEXT: Index: 0
-; CHECK-NEXT: - Name: _start
-; CHECK-NEXT: Kind: FUNCTION
-; CHECK-NEXT: Index: 0
-; CHECK-NEXT: - Name: start_alias
-; CHECK-NEXT: Kind: FUNCTION
-; CHECK-NEXT: Index: 0
-; CHECK-NEXT: - Type: CODE
-; CHECK-NEXT: Functions:
-; CHECK-NEXT: - Index: 0
-; CHECK-NEXT: Locals:
-; CHECK-NEXT: Body: 0B
-; CHECK-NEXT: - Type: CUSTOM
-; CHECK-NEXT: Name: name
-; CHECK-NEXT: FunctionNames:
-; CHECK-NEXT: - Index: 0
-; CHECK-NEXT: Name: _start
-; CHECK-NEXT: ...
diff --git a/lld/test/wasm/alias.s b/lld/test/wasm/alias.s
new file mode 100644
index 000000000000..e95cef1bb6a9
--- /dev/null
+++ b/lld/test/wasm/alias.s
@@ -0,0 +1,64 @@
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s
+# RUN: wasm-ld --export=start_alias %t.o -o %t.wasm
+# RUN: obj2yaml %t.wasm | FileCheck %s
+
+ .globl _start
+_start:
+ .functype _start () -> ()
+ end_function
+
+ .globl start_alias
+ .type start_alias, at function
+.set start_alias, _start
+
+# CHECK: --- !WASM
+# CHECK-NEXT: FileHeader:
+# CHECK-NEXT: Version: 0x00000001
+# CHECK-NEXT: Sections:
+# CHECK-NEXT: - Type: TYPE
+# CHECK-NEXT: Signatures:
+# CHECK-NEXT: - Index: 0
+# CHECK-NEXT: ParamTypes:
+# CHECK-NEXT: ReturnTypes: []
+# CHECK-NEXT: - Type: FUNCTION
+# CHECK-NEXT: FunctionTypes: [ 0 ]
+# CHECK-NEXT: - Type: TABLE
+# CHECK-NEXT: Tables:
+# CHECK-NEXT: - ElemType: FUNCREF
+# CHECK-NEXT: Limits:
+# CHECK-NEXT: Flags: [ HAS_MAX ]
+# CHECK-NEXT: Initial: 0x00000001
+# CHECK-NEXT: Maximum: 0x00000001
+# CHECK-NEXT: - Type: MEMORY
+# CHECK-NEXT: Memories:
+# CHECK-NEXT: - Initial: 0x00000002
+# CHECK-NEXT: - Type: GLOBAL
+# CHECK-NEXT: Globals:
+# CHECK-NEXT: - Index: 0
+# CHECK-NEXT: Type: I32
+# CHECK-NEXT: Mutable: true
+# CHECK-NEXT: InitExpr:
+# CHECK-NEXT: Opcode: I32_CONST
+# CHECK-NEXT: Value: 66560
+# CHECK-NEXT: - Type: EXPORT
+# CHECK-NEXT: Exports:
+# CHECK-NEXT: - Name: memory
+# CHECK-NEXT: Kind: MEMORY
+# CHECK-NEXT: Index: 0
+# CHECK-NEXT: - Name: _start
+# CHECK-NEXT: Kind: FUNCTION
+# CHECK-NEXT: Index: 0
+# CHECK-NEXT: - Name: start_alias
+# CHECK-NEXT: Kind: FUNCTION
+# CHECK-NEXT: Index: 0
+# CHECK-NEXT: - Type: CODE
+# CHECK-NEXT: Functions:
+# CHECK-NEXT: - Index: 0
+# CHECK-NEXT: Locals:
+# CHECK-NEXT: Body: 0B
+# CHECK-NEXT: - Type: CUSTOM
+# CHECK-NEXT: Name: name
+# CHECK-NEXT: FunctionNames:
+# CHECK-NEXT: - Index: 0
+# CHECK-NEXT: Name: _start
+# CHECK-NEXT: ...
diff --git a/lld/test/wasm/archive-export.ll b/lld/test/wasm/archive-export.ll
index 664f7761e61f..9a76d60d63d9 100644
--- a/lld/test/wasm/archive-export.ll
+++ b/lld/test/wasm/archive-export.ll
@@ -1,6 +1,6 @@
Test that --export will also fetch lazy symbols from archives
-RUN: llc -filetype=obj %S/Inputs/start.ll -o %t.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.o
RUN: llc -filetype=obj %S/Inputs/archive1.ll -o %t.a1.o
RUN: llc -filetype=obj %S/Inputs/archive2.ll -o %t.a2.o
RUN: rm -f %t.a
diff --git a/lld/test/wasm/archive-no-index.ll b/lld/test/wasm/archive-no-index.ll
deleted file mode 100644
index 237fd93dcd6c..000000000000
--- a/lld/test/wasm/archive-no-index.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; Tests error on archive file without a symbol table
-; RUN: llvm-as -o %t.o %s
-; RUN: llvm-as -o %t.archive.o %S/Inputs/archive1.ll
-; RUN: rm -f %t.a
-; RUN: llvm-ar crS %t.a %t.archive.o
-
-; RUN: not wasm-ld -o out.wasm %t.o %t.a 2>&1 | FileCheck %s
-
-define i32 @_start() {
- ret i32 0
-}
-
-; CHECK: archive has no index; run ranlib to add one
diff --git a/lld/test/wasm/archive-no-index.s b/lld/test/wasm/archive-no-index.s
new file mode 100644
index 000000000000..99ca5a367d3c
--- /dev/null
+++ b/lld/test/wasm/archive-no-index.s
@@ -0,0 +1,14 @@
+# Tests error on archive file without a symbol table
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s
+# RUN: llvm-as -o %t.archive.o %S/Inputs/archive1.ll
+# RUN: rm -f %t.a
+# RUN: llvm-ar crS %t.a %t.archive.o
+
+# RUN: not wasm-ld -o out.wasm %t.o %t.a 2>&1 | FileCheck %s
+
+ .globl _start
+_start:
+ .functype _start () -> ()
+ end_function
+
+# CHECK: archive has no index; run ranlib to add one
diff --git a/lld/test/wasm/archive-weak-undefined.ll b/lld/test/wasm/archive-weak-undefined.ll
index 25afccabaf7f..530ff8aeb618 100644
--- a/lld/test/wasm/archive-weak-undefined.ll
+++ b/lld/test/wasm/archive-weak-undefined.ll
@@ -1,7 +1,7 @@
; Test that weak undefined symbols do not fetch members from archive files.
; RUN: llc -filetype=obj %s -o %t.o
-; RUN: llc -filetype=obj %S/Inputs/ret32.ll -o %t.ret32.o
-; RUN: llc -filetype=obj %S/Inputs/hello.ll -o %t.hello.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/hello.s -o %t.hello.o
; RUN: rm -f %t.a
; RUN: llvm-ar rcs %t.a %t.ret32.o %t.hello.o
diff --git a/lld/test/wasm/archive.ll b/lld/test/wasm/archive.ll
index 84054536a92d..df72ec7813e2 100644
--- a/lld/test/wasm/archive.ll
+++ b/lld/test/wasm/archive.ll
@@ -2,7 +2,7 @@
; RUN: llc -filetype=obj %S/Inputs/archive1.ll -o %t.a1.o
; RUN: llc -filetype=obj %S/Inputs/archive2.ll -o %t.a2.o
; RUN: llc -filetype=obj %S/Inputs/archive3.ll -o %t.a3.o
-; RUN: llc -filetype=obj %S/Inputs/hello.ll -o %t.hello.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/hello.s -o %t.hello.o
; RUN: rm -f %t.a
; RUN: llvm-ar rcs %t.a %t.a1.o %t.a2.o %t.a3.o %t.hello.o
; RUN: rm -f %t.imports
diff --git a/lld/test/wasm/bss-only.ll b/lld/test/wasm/bss-only.ll
deleted file mode 100644
index 23f94a1a3ebd..000000000000
--- a/lld/test/wasm/bss-only.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llc -filetype=obj %s -o %t.o
-; RUN: wasm-ld -no-gc-sections --no-entry %t.o -o %t.wasm
-; RUN: obj2yaml %t.wasm | FileCheck %s
-
-; Test that the data section is skipped entirely when there are only
-; bss segments
-
-target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
-target triple = "wasm32-unknown-unknown"
-
- at a = global [1000 x i8] zeroinitializer, align 1
- at b = global i32 0
-
-; CHECK-NOT: - Type: DATA
diff --git a/lld/test/wasm/bss-only.s b/lld/test/wasm/bss-only.s
new file mode 100644
index 000000000000..56963530a0b0
--- /dev/null
+++ b/lld/test/wasm/bss-only.s
@@ -0,0 +1,43 @@
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s
+# RUN: wasm-ld -no-gc-sections --no-entry --export=__data_end %t.o -o %t.wasm
+# RUN: obj2yaml %t.wasm | FileCheck %s
+
+# Test that the data section is skipped entirely when there are only
+# bss segments
+
+ .section .bss.a,"",@
+ .globl a
+a:
+ .skip 1000
+ .size a, 1000
+
+ .section .bss.b,"",@
+ .globl b
+b:
+ .int32 0
+ .size b, 4
+
+# CHECK-NOT: - Type: DATA
+
+# CHECK: - Type: GLOBAL
+# CHECK-NEXT: Globals:
+# CHECK-NEXT: - Index: 0
+# CHECK-NEXT: Type: I32
+# CHECK-NEXT: Mutable: true
+# CHECK-NEXT: InitExpr:
+# CHECK-NEXT: Opcode: I32_CONST
+# CHECK-NEXT: Value: 67568
+# CHECK-NEXT: - Index: 1
+# CHECK-NEXT: Type: I32
+# CHECK-NEXT: Mutable: false
+# CHECK-NEXT: InitExpr:
+# CHECK-NEXT: Opcode: I32_CONST
+# CHECK-NEXT: Value: 2028
+# CHECK-NEXT: - Type: EXPORT
+# CHECK-NEXT: Exports:
+# CHECK-NEXT: - Name: memory
+# CHECK-NEXT: Kind: MEMORY
+# CHECK-NEXT: Index: 0
+# CHECK-NEXT: - Name: __data_end
+# CHECK-NEXT: Kind: GLOBAL
+# CHECK-NEXT: Index: 1
diff --git a/lld/test/wasm/call-indirect.ll b/lld/test/wasm/call-indirect.ll
index 2eb134a97bbb..722385bdd350 100644
--- a/lld/test/wasm/call-indirect.ll
+++ b/lld/test/wasm/call-indirect.ll
@@ -1,5 +1,5 @@
-; RUN: llc -filetype=obj %p/Inputs/call-indirect.ll -o %t2.o
; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/call-indirect.s -o %t2.o
; RUN: wasm-ld --export-dynamic -o %t.wasm %t2.o %t.o
; RUN: obj2yaml %t.wasm | FileCheck %s
@@ -121,9 +121,7 @@ define void @call_ptr(i64 (i64)* %arg) {
; CHECK-NEXT: Body: 42010B
; CHECK-NEXT: - Index: 1
; CHECK-NEXT: Locals:
-; CHECK-NEXT: - Type: I32
-; CHECK-NEXT: Count: 1
-; CHECK-NEXT: Body: 4100280284888080002100410028028088808000118080808000001A2000118180808000001A0B
+; CHECK-NEXT: Body: 28028088808000118080808000001A28028488808000118180808000001A0B
; CHECK-NEXT: - Index: 2
; CHECK-NEXT: Locals:
; CHECK-NEXT: Body: 41020B
diff --git a/lld/test/wasm/compress-relocs.ll b/lld/test/wasm/compress-relocs.ll
index d14ea26a4c33..6c3533a108a5 100644
--- a/lld/test/wasm/compress-relocs.ll
+++ b/lld/test/wasm/compress-relocs.ll
@@ -1,5 +1,5 @@
-; RUN: llc -filetype=obj %p/Inputs/call-indirect.ll -o %t2.o
; RUN: llc -filetype=obj %s -o %t.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/call-indirect.s -o %t2.o
; RUN: wasm-ld --export-dynamic -o %t.wasm %t2.o %t.o
; RUN: obj2yaml %t.wasm | FileCheck %s
; RUN: wasm-ld --export-dynamic -O2 -o %t-opt.wasm %t2.o %t.o
@@ -22,5 +22,5 @@ entry:
; ERROR: wasm-ld: error: --compress-relocations is incompatible with output debug information. Please pass --strip-debug or --strip-all
-; CHECK: Body: 4100280284888080002100410028028088808000118080808000001A2000118180808000001A0B
-; COMPRESS: Body: 41002802840821004100280280081100001A20001101001A0B
+; CHECK: Body: 28028088808000118080808000001A28028488808000118180808000001A0B
+; COMPRESS: Body: 280280081100001A280284081101001A0B
diff --git a/lld/test/wasm/conflict.test b/lld/test/wasm/conflict.test
index 9adc92ed1eda..290a0319af53 100644
--- a/lld/test/wasm/conflict.test
+++ b/lld/test/wasm/conflict.test
@@ -1,4 +1,4 @@
-# RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
# RUN: not wasm-ld -o %t.wasm %t.ret32.o %t.ret32.o 2>&1 | FileCheck %s
# CHECK: duplicate symbol: ret32
diff --git a/lld/test/wasm/data-layout.ll b/lld/test/wasm/data-layout.ll
index 02ff0ecd8b97..759c5440fe99 100644
--- a/lld/test/wasm/data-layout.ll
+++ b/lld/test/wasm/data-layout.ll
@@ -1,4 +1,4 @@
-; RUN: llc -filetype=obj %p/Inputs/hello.ll -o %t.hello.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/hello.s -o %t.hello.o
; RUN: llc -filetype=obj %s -o %t.o
target triple = "wasm32-unknown-unknown"
diff --git a/lld/test/wasm/demangle.ll b/lld/test/wasm/demangle.ll
deleted file mode 100644
index 64fa46ae4dce..000000000000
--- a/lld/test/wasm/demangle.ll
+++ /dev/null
@@ -1,19 +0,0 @@
-; RUN: llc -filetype=obj %s -o %t.o
-; RUN: not wasm-ld -o %t.wasm %t.o 2>&1 | FileCheck %s
-
-; CHECK: error: {{.*}}.o: undefined symbol: foo(int)
-
-; RUN: not wasm-ld --no-demangle \
-; RUN: -o %t.wasm %t.o 2>&1 | FileCheck -check-prefix=CHECK-NODEMANGLE %s
-
-; CHECK-NODEMANGLE: error: {{.*}}.o: undefined symbol: _Z3fooi
-
-target triple = "wasm32-unknown-unknown"
-
-declare void @_Z3fooi(i32);
-
-define hidden void @_start() local_unnamed_addr {
-entry:
- call void @_Z3fooi(i32 1)
- ret void
-}
diff --git a/lld/test/wasm/demangle.s b/lld/test/wasm/demangle.s
new file mode 100644
index 000000000000..7e1af46d64b8
--- /dev/null
+++ b/lld/test/wasm/demangle.s
@@ -0,0 +1,18 @@
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s
+# RUN: not wasm-ld -o %t.wasm %t.o 2>&1 | FileCheck %s
+
+# CHECK: error: {{.*}}.o: undefined symbol: foo(int)
+
+# RUN: not wasm-ld --no-demangle \
+# RUN: -o %t.wasm %t.o 2>&1 | FileCheck -check-prefix=CHECK-NODEMANGLE %s
+
+# CHECK-NODEMANGLE: error: {{.*}}.o: undefined symbol: _Z3fooi
+
+ .globl _start
+_start:
+ .functype _start () -> ()
+ i32.const 1
+ call _Z3fooi
+ end_function
+
+.functype _Z3fooi (i32) -> ()
diff --git a/lld/test/wasm/emit-relocs-fpic.s b/lld/test/wasm/emit-relocs-fpic.s
index e1adede20a5f..c70e1e675109 100644
--- a/lld/test/wasm/emit-relocs-fpic.s
+++ b/lld/test/wasm/emit-relocs-fpic.s
@@ -1,5 +1,5 @@
# RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=obj -o %t.o < %s
-# RUN: llc --relocation-model=pic -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
# RUN: wasm-ld -pie --export-all --no-gc-sections --no-entry --emit-relocs -o %t.wasm %t.o %t.ret32.o
# RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/emit-relocs.ll b/lld/test/wasm/emit-relocs.ll
index cdf492ab8fbd..0317f9b0eb37 100644
--- a/lld/test/wasm/emit-relocs.ll
+++ b/lld/test/wasm/emit-relocs.ll
@@ -1,5 +1,5 @@
; RUN: llc -filetype=obj %s -o %t.o
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
; RUN: wasm-ld --emit-relocs -o %t.wasm %t.o %t.ret32.o
; RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/entry-signature.ll b/lld/test/wasm/entry-signature.ll
deleted file mode 100644
index f7f3d481acfc..000000000000
--- a/lld/test/wasm/entry-signature.ll
+++ /dev/null
@@ -1,10 +0,0 @@
-; Verify that the entry point signature can be flexible.
-; RUN: llc -filetype=obj %s -o %t.o
-; RUN: wasm-ld -o %t1.wasm %t.o
-
-target triple = "wasm32-unknown-unknown-wasm"
-
-define hidden i32 @_start(i32, i64) local_unnamed_addr #0 {
-entry:
- ret i32 0
-}
diff --git a/lld/test/wasm/entry-signature.s b/lld/test/wasm/entry-signature.s
new file mode 100644
index 000000000000..b6f355c13193
--- /dev/null
+++ b/lld/test/wasm/entry-signature.s
@@ -0,0 +1,8 @@
+# Verify that the entry point signature can be flexible.
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s
+# RUN: wasm-ld -o %t1.wasm %t.o
+
+ .globl _start
+_start:
+ .functype _start (i64) -> (f32)
+ end_function
diff --git a/lld/test/wasm/export-empty.test b/lld/test/wasm/export-empty.test
index 1c0f7bbc779d..03fc3d209c31 100644
--- a/lld/test/wasm/export-empty.test
+++ b/lld/test/wasm/export-empty.test
@@ -1,4 +1,4 @@
-RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.o
RUN: not wasm-ld --export "" %t.o -o %t.wasm 2>&1 | FileCheck --match-full-lines %s
CHECK: wasm-ld: error: symbol exported via --export not found:
diff --git a/lld/test/wasm/export-optional-lazy.ll b/lld/test/wasm/export-optional-lazy.ll
deleted file mode 100644
index c37a3e5183eb..000000000000
--- a/lld/test/wasm/export-optional-lazy.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-; Optional linker-synthetic symbols are only created if they are undefined
-; in the final output.
-; This test is for a regression where an explicit --export of an lazy archive
-; symbol caused an undefined reference to an optional symbol to occur *after*
-; the optional symbols were created.
-
-; RUN: llc -filetype=obj %s -o %t.o
-; RUN: llc -filetype=obj %S/Inputs/optional-symbol.ll -o %t.a1.o
-; RUN: rm -f %t.a
-; RUN: llvm-ar rcs %t.a %t.a1.o
-; RUN: wasm-ld --export=get_optional %t.o %t.a -o %t.wasm
-; RUN: obj2yaml %t.wasm | FileCheck %s
-
-target triple = "wasm32-unknown-unknown"
-
-define void @_start() {
-entry:
- ret void
-}
-
-; CHECK: FunctionNames:
-; CHECK-NEXT: - Index: 0
-; CHECK-NEXT: Name: _start
-; CHECK-NEXT: - Index: 1
-; CHECK-NEXT: Name: get_optional
diff --git a/lld/test/wasm/export-optional-lazy.test b/lld/test/wasm/export-optional-lazy.test
new file mode 100644
index 000000000000..6304d6bb2cd5
--- /dev/null
+++ b/lld/test/wasm/export-optional-lazy.test
@@ -0,0 +1,18 @@
+Optional linker-synthetic symbols are only created if they are undefined
+in the final output.
+This test is for a regression where an explicit --export of an lazy archive
+symbol caused an undefined reference to an optional symbol to occur *after*
+the optional symbols were created.
+
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/optional-symbol.s -o %t.a1.o
+RUN: rm -f %t.a
+RUN: llvm-ar rcs %t.a %t.a1.o
+RUN: wasm-ld --export=get_optional %t.o %t.a -o %t.wasm
+RUN: obj2yaml %t.wasm | FileCheck %s
+
+CHECK: FunctionNames:
+CHECK-NEXT: - Index: 0
+CHECK-NEXT: Name: _start
+CHECK-NEXT: - Index: 1
+CHECK-NEXT: Name: get_optional
diff --git a/lld/test/wasm/export-table.test b/lld/test/wasm/export-table.test
index e2d05f00d5a7..b218392652d6 100644
--- a/lld/test/wasm/export-table.test
+++ b/lld/test/wasm/export-table.test
@@ -1,4 +1,4 @@
-# RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.start.o
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.start.o
# RUN: wasm-ld --export-table -o %t.wasm %t.start.o
# RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/fatal-warnings.ll b/lld/test/wasm/fatal-warnings.ll
index d338420ef09c..01a0137a2f45 100644
--- a/lld/test/wasm/fatal-warnings.ll
+++ b/lld/test/wasm/fatal-warnings.ll
@@ -1,5 +1,5 @@
; RUN: llc -filetype=obj %s -o %t.main.o
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
; RUN: wasm-ld -o %t.wasm %t.main.o %t.ret32.o 2>&1 | FileCheck %s -check-prefix=CHECK-WARN
; RUN: not wasm-ld --fatal-warnings -o %t.wasm %t.main.o %t.ret32.o 2>&1 | FileCheck %s -check-prefix=CHECK-FATAL
diff --git a/lld/test/wasm/function-imports-first.ll b/lld/test/wasm/function-imports-first.ll
index 73c113438f01..b2751e047bd4 100644
--- a/lld/test/wasm/function-imports-first.ll
+++ b/lld/test/wasm/function-imports-first.ll
@@ -1,4 +1,4 @@
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
; RUN: llc -filetype=obj %s -o %t.o
; RUN: wasm-ld -o %t.wasm %t.o %t.ret32.o
; RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/function-imports.ll b/lld/test/wasm/function-imports.ll
index 4fb1c64c72bf..5f2d6f9ee611 100644
--- a/lld/test/wasm/function-imports.ll
+++ b/lld/test/wasm/function-imports.ll
@@ -1,4 +1,4 @@
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
; RUN: llc -filetype=obj %s -o %t.o
; RUN: wasm-ld -o %t.wasm %t.ret32.o %t.o
; RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/function-index.test b/lld/test/wasm/function-index.test
index fbcde6cd8168..0b32551c5af6 100644
--- a/lld/test/wasm/function-index.test
+++ b/lld/test/wasm/function-index.test
@@ -1,5 +1,5 @@
-# RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
-# RUN: llc -filetype=obj %p/Inputs/ret64.ll -o %t.ret64.o
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret64.s -o %t.ret64.o
# RUN: wasm-ld -r -o %t.wasm %t.ret32.o %t.ret64.o
# RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/global-base.test b/lld/test/wasm/global-base.test
index 723b0d79af11..56efadd9d588 100644
--- a/lld/test/wasm/global-base.test
+++ b/lld/test/wasm/global-base.test
@@ -1,4 +1,4 @@
-RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.o
RUN: wasm-ld --export=__global_base --export=__data_end --allow-undefined -o %t.wasm %t.o
RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-1024
diff --git a/lld/test/wasm/growable-table.test b/lld/test/wasm/growable-table.test
index cd52f2e1662f..00cff3fc416e 100644
--- a/lld/test/wasm/growable-table.test
+++ b/lld/test/wasm/growable-table.test
@@ -1,4 +1,4 @@
-# RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.start.o
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.start.o
# RUN: wasm-ld --export-table --growable-table -o %t.wasm %t.start.o
# RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/import-attribute-mismatch.ll b/lld/test/wasm/import-attribute-mismatch.ll
deleted file mode 100644
index d3ba294a212b..000000000000
--- a/lld/test/wasm/import-attribute-mismatch.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llc -filetype=obj %s -o %t1.o
-; RUN: llc -filetype=obj %S/Inputs/import-attributes.ll -o %t2.o
-; RUN: not wasm-ld --export call_foo --allow-undefined -o %t.wasm %t1.o %t2.o 2>&1 | FileCheck %s
-
-target triple = "wasm32-unknown-unknown-wasm"
-
-define void @_start() {
- call void @foo();
- ret void
-}
-
-declare void @foo() #0
-
-attributes #0 = { "wasm-import-module"="bar" }
-
-; CHECK: wasm-ld: error: import module mismatch for symbol: foo
-; CHECK: >>> defined as bar in {{.*}}1.o
-; CHECK: >>> defined as baz in {{.*}}2.o
diff --git a/lld/test/wasm/import-attribute-mismatch.s b/lld/test/wasm/import-attribute-mismatch.s
new file mode 100644
index 000000000000..67aa1e39ef36
--- /dev/null
+++ b/lld/test/wasm/import-attribute-mismatch.s
@@ -0,0 +1,16 @@
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t1.o %s
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %S/Inputs/import-attributes.s -o %t2.o
+# RUN: not wasm-ld --export call_foo --allow-undefined -o %t.wasm %t1.o %t2.o 2>&1 | FileCheck %s
+
+ .globl _start
+_start:
+ .functype _start () -> ()
+ call foo
+ end_function
+
+.functype foo () -> ()
+.import_module foo, bar
+
+# CHECK: wasm-ld: error: import module mismatch for symbol: foo
+# CHECK: >>> defined as bar in {{.*}}1.o
+# CHECK: >>> defined as baz in {{.*}}2.o
diff --git a/lld/test/wasm/import-memory.test b/lld/test/wasm/import-memory.test
index d7a257199dbb..bc9e64fe578e 100644
--- a/lld/test/wasm/import-memory.test
+++ b/lld/test/wasm/import-memory.test
@@ -1,4 +1,4 @@
-# RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.start.o
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.start.o
# RUN: wasm-ld --import-memory -o %t.wasm %t.start.o
# RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/import-table.test b/lld/test/wasm/import-table.test
index 440509b3483c..4d1b4c9a7832 100644
--- a/lld/test/wasm/import-table.test
+++ b/lld/test/wasm/import-table.test
@@ -1,4 +1,4 @@
-# RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.start.o
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.start.o
# RUN: wasm-ld --import-table -o %t.wasm %t.start.o
# RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/invalid-stack-size.test b/lld/test/wasm/invalid-stack-size.test
index 90c9fda113e6..645e1a49f8d6 100644
--- a/lld/test/wasm/invalid-stack-size.test
+++ b/lld/test/wasm/invalid-stack-size.test
@@ -1,4 +1,4 @@
-; RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.o
; RUN: not wasm-ld -o %t.wasm -z stack-size=1 %t.o 2>&1 | FileCheck %s
; CHECK: error: stack size must be 16-byte aligned
diff --git a/lld/test/wasm/large-memory.test b/lld/test/wasm/large-memory.test
index 0713a8b02dd1..40270c519518 100644
--- a/lld/test/wasm/large-memory.test
+++ b/lld/test/wasm/large-memory.test
@@ -1,4 +1,4 @@
-RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.o
; Verify we can parse large integers such as when we ask for 2G of total
; memory.
diff --git a/lld/test/wasm/load-undefined.test b/lld/test/wasm/load-undefined.test
index 1b8d259d5b8d..3171d4a4a4aa 100644
--- a/lld/test/wasm/load-undefined.test
+++ b/lld/test/wasm/load-undefined.test
@@ -1,9 +1,9 @@
; Verify that the -u / --undefined option is able to pull in symbols from
; an archive, and doesn't error when uses to pull in a symbol already loaded.
;
-; RUN: llc -filetype=obj %S/Inputs/ret64.ll -o %t.o
-; RUN: llc -filetype=obj %S/Inputs/ret32.ll -o %t2.o
-; RUN: llc -filetype=obj %S/Inputs/start.ll -o %t.start.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret64.s -o %t.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t2.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.start.o
; RUN: rm -f %t2.a
; RUN: llvm-ar rcs %t2.a %t2.o
; RUN: wasm-ld %t.start.o --no-gc-sections %t2.a %t.o -o %t.wasm -u ret32 --undefined ret64
diff --git a/lld/test/wasm/no-tls.ll b/lld/test/wasm/no-tls.ll
new file mode 100644
index 000000000000..54bb9cee0169
--- /dev/null
+++ b/lld/test/wasm/no-tls.ll
@@ -0,0 +1,48 @@
+; Testing that __tls_size and __tls_align are correctly emitted when there are
+; no thread_local variables.
+
+; RUN: llc -mattr=+bulk-memory,+atomics -filetype=obj %s -o %t.o
+
+target triple = "wasm32-unknown-unknown"
+
+define void @_start() local_unnamed_addr {
+entry:
+ ret void
+}
+
+; RUN: wasm-ld -no-gc-sections --shared-memory --max-memory=131072 --allow-undefined -o %t.wasm %t.o
+; RUN: obj2yaml %t.wasm | FileCheck %s
+; CHECK: - Type: GLOBAL
+; CHECK-NEXT: Globals:
+
+; __stack_pointer
+; CHECK-NEXT: - Index: 0
+; CHECK-NEXT: Type: I32
+; CHECK-NEXT: Mutable: true
+; CHECK-NEXT: InitExpr:
+; CHECK-NEXT: Opcode: I32_CONST
+; CHECK-NEXT: Value: 66576
+
+; __tls_base
+; CHECK-NEXT: - Index: 1
+; CHECK-NEXT: Type: I32
+; CHECK-NEXT: Mutable: true
+; CHECK-NEXT: InitExpr:
+; CHECK-NEXT: Opcode: I32_CONST
+; CHECK-NEXT: Value: 0
+
+; __tls_size
+; CHECK-NEXT: - Index: 2
+; CHECK-NEXT: Type: I32
+; CHECK-NEXT: Mutable: false
+; CHECK-NEXT: InitExpr:
+; CHECK-NEXT: Opcode: I32_CONST
+; CHECK-NEXT: Value: 0
+
+; __tls_align
+; CHECK-NEXT: - Index: 3
+; CHECK-NEXT: Type: I32
+; CHECK-NEXT: Mutable: false
+; CHECK-NEXT: InitExpr:
+; CHECK-NEXT: Opcode: I32_CONST
+; CHECK-NEXT: Value: 1
diff --git a/lld/test/wasm/no-tls.test b/lld/test/wasm/no-tls.test
deleted file mode 100644
index 225d78a96856..000000000000
--- a/lld/test/wasm/no-tls.test
+++ /dev/null
@@ -1,41 +0,0 @@
-; Testing that __tls_size and __tls_align are correctly emitted when there are
-; no thread_local variables.
-
-RUN: llc -mattr=+bulk-memory,+atomics -filetype=obj %p/Inputs/start.ll -o %t.o
-
-RUN: wasm-ld -no-gc-sections --shared-memory --max-memory=131072 --allow-undefined -o %t.wasm %t.o
-RUN: obj2yaml %t.wasm | FileCheck %s
-CHECK: - Type: GLOBAL
-CHECK-NEXT: Globals:
-
-; __stack_pointer
-CHECK-NEXT: - Index: 0
-CHECK-NEXT: Type: I32
-CHECK-NEXT: Mutable: true
-CHECK-NEXT: InitExpr:
-CHECK-NEXT: Opcode: I32_CONST
-CHECK-NEXT: Value: 66576
-
-; __tls_base
-CHECK-NEXT: - Index: 1
-CHECK-NEXT: Type: I32
-CHECK-NEXT: Mutable: true
-CHECK-NEXT: InitExpr:
-CHECK-NEXT: Opcode: I32_CONST
-CHECK-NEXT: Value: 0
-
-; __tls_size
-CHECK-NEXT: - Index: 2
-CHECK-NEXT: Type: I32
-CHECK-NEXT: Mutable: false
-CHECK-NEXT: InitExpr:
-CHECK-NEXT: Opcode: I32_CONST
-CHECK-NEXT: Value: 0
-
-; __tls_align
-CHECK-NEXT: - Index: 3
-CHECK-NEXT: Type: I32
-CHECK-NEXT: Mutable: false
-CHECK-NEXT: InitExpr:
-CHECK-NEXT: Opcode: I32_CONST
-CHECK-NEXT: Value: 1
diff --git a/lld/test/wasm/optional-symbol.ll b/lld/test/wasm/optional-symbol.ll
deleted file mode 100644
index ac1a4212fbf0..000000000000
--- a/lld/test/wasm/optional-symbol.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: llc -filetype=obj -o %t.o %s
-; RUN: wasm-ld --export=get_handle %t.o -o %t.wasm
-
-target triple = "wasm32-unknown-unknown"
-
- at __dso_handle = external global i8*
-
-define i8** @get_handle() {
- ret i8** @__dso_handle
-}
-
-define void @_start() {
- ret void
-}
diff --git a/lld/test/wasm/optional-symbol.s b/lld/test/wasm/optional-symbol.s
new file mode 100644
index 000000000000..bac98838e6ae
--- /dev/null
+++ b/lld/test/wasm/optional-symbol.s
@@ -0,0 +1,13 @@
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s
+# RUN: wasm-ld --export=get_handle %t.o -o %t.wasm
+
+ .globl get_handle
+get_handle:
+ .functype get_handle () -> (i32)
+ i32.const __dso_handle
+ end_function
+
+ .globl _start
+_start:
+ .functype _start () -> ()
+ end_function
diff --git a/lld/test/wasm/pic-static.ll b/lld/test/wasm/pic-static.ll
index 65b47175865e..d9fe0eacc98b 100644
--- a/lld/test/wasm/pic-static.ll
+++ b/lld/test/wasm/pic-static.ll
@@ -1,7 +1,7 @@
; Test that PIC code can be linked into static binaries.
; In this case the GOT entries will end up as internalized wasm globals with
; fixed values.
-; RUN: llc -relocation-model=pic -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
; RUN: llc -relocation-model=pic -filetype=obj %s -o %t.o
; RUN: wasm-ld --allow-undefined --export-all -o %t.wasm %t.o %t.ret32.o
; RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/relocatable.ll b/lld/test/wasm/relocatable.ll
index a43a06e4be58..1bf039108614 100644
--- a/lld/test/wasm/relocatable.ll
+++ b/lld/test/wasm/relocatable.ll
@@ -1,4 +1,4 @@
-; RUN: llc -filetype=obj %p/Inputs/hello.ll -o %t.hello.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/hello.s -o %t.hello.o
; RUN: llc -filetype=obj %s -o %t.o
; RUN: wasm-ld -r -o %t.wasm %t.hello.o %t.o
; RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/responsefile.test b/lld/test/wasm/responsefile.test
index 85ac41f93f2b..36209d48edda 100644
--- a/lld/test/wasm/responsefile.test
+++ b/lld/test/wasm/responsefile.test
@@ -1,4 +1,4 @@
-RUN: llc -filetype=obj -o %t.o %p/Inputs/ret32.ll
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.o
RUN: echo "%/t.o -o %/t.wasm -e ret32" > %t.rsp
RUN: wasm-ld @%t.rsp --initial-memory=655360
diff --git a/lld/test/wasm/shared-needed.ll b/lld/test/wasm/shared-needed.ll
index f0afb1098501..00ecdb68202e 100644
--- a/lld/test/wasm/shared-needed.ll
+++ b/lld/test/wasm/shared-needed.ll
@@ -1,5 +1,5 @@
; RUN: llc -filetype=obj %s -o %t.o
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
; RUN: wasm-ld -shared -o %t1.so %t.o
; RUN: obj2yaml %t1.so | FileCheck %s -check-prefix=SO1
diff --git a/lld/test/wasm/signature-mismatch-export.ll b/lld/test/wasm/signature-mismatch-export.ll
index 55ca66ba81bd..80c05c33913f 100644
--- a/lld/test/wasm/signature-mismatch-export.ll
+++ b/lld/test/wasm/signature-mismatch-export.ll
@@ -1,4 +1,4 @@
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
; RUN: llc -filetype=obj %s -o %t.main.o
; RUN: wasm-ld --export=ret32 -o %t.wasm %t.main.o %t.ret32.o
; RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/signature-mismatch-unknown.ll b/lld/test/wasm/signature-mismatch-unknown.ll
index 9bbad0065dcd..c78bff556eee 100644
--- a/lld/test/wasm/signature-mismatch-unknown.ll
+++ b/lld/test/wasm/signature-mismatch-unknown.ll
@@ -1,4 +1,4 @@
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
; RUN: llc -filetype=obj %s -o %t.main.o
; RUN: wasm-ld --fatal-warnings -o %t.wasm %t.ret32.o %t.main.o
; RUN: wasm-ld --fatal-warnings -o %t.wasm %t.main.o %t.ret32.o
@@ -7,7 +7,7 @@
; references ret32:
; %t.main.o: Does not call ret32 directly; used the wrong signature.
; %t.call-ret32.o: Calls ret32 directly; uses the correct signature.
-; RUN: llc -filetype=obj %p/Inputs/call-ret32.ll -o %t.call-ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/call-ret32.s -o %t.call-ret32.o
; RUN: wasm-ld --export=call_ret32 --fatal-warnings -o %t.wasm %t.main.o %t.call-ret32.o %t.ret32.o
; RUN: wasm-ld --export=call_ret32 --fatal-warnings -o %t.wasm %t.call-ret32.o %t.main.o %t.ret32.o
diff --git a/lld/test/wasm/signature-mismatch-weak.ll b/lld/test/wasm/signature-mismatch-weak.ll
index 4d2b02cc9ed3..bf94d5361b38 100644
--- a/lld/test/wasm/signature-mismatch-weak.ll
+++ b/lld/test/wasm/signature-mismatch-weak.ll
@@ -1,5 +1,5 @@
-; RUN: llc -filetype=obj %p/Inputs/weak-symbol1.ll -o %t.weak.o
-; RUN: llc -filetype=obj %p/Inputs/strong-symbol.ll -o %t.strong.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/weak-symbol1.s -o %t.weak.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/strong-symbol.s -o %t.strong.o
; RUN: llc -filetype=obj %s -o %t.o
; RUN: wasm-ld -o %t.wasm %t.o %t.strong.o %t.weak.o 2>&1 | FileCheck %s
diff --git a/lld/test/wasm/signature-mismatch.ll b/lld/test/wasm/signature-mismatch.ll
index bb9204ea7e45..b797b013820b 100644
--- a/lld/test/wasm/signature-mismatch.ll
+++ b/lld/test/wasm/signature-mismatch.ll
@@ -1,5 +1,5 @@
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
-; RUN: llc -filetype=obj %p/Inputs/call-ret32.ll -o %t.call.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/call-ret32.s -o %t.call.o
; RUN: llc -filetype=obj %s -o %t.main.o
; RUN: wasm-ld --export=call_ret32 --export=ret32 -o %t.wasm %t.main.o %t.ret32.o %t.call.o 2>&1 | FileCheck %s -check-prefix=WARN
@@ -76,7 +76,7 @@ declare i32 @ret32(i32, i64, i32) local_unnamed_addr
; RELOC-NEXT: - Index: 3
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: call_ret32
-; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
+; RELOC-NEXT: Flags: [ ]
; RELOC-NEXT: Function: 3
; RELOC-NEXT: - Index: 4
; RELOC-NEXT: Kind: DATA
diff --git a/lld/test/wasm/stack-first.test b/lld/test/wasm/stack-first.test
index 805acfb6fa6f..9d7f077d58cf 100644
--- a/lld/test/wasm/stack-first.test
+++ b/lld/test/wasm/stack-first.test
@@ -3,7 +3,7 @@
; stack size of 512. This means (since the stack grows down) the stack pointer
; global should be initialized to 512.
-RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.o
RUN: wasm-ld -z stack-size=512 --stack-first --export=__data_end --export=__heap_base -o %t.wasm %t.o
RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/strip-all.test b/lld/test/wasm/strip-all.test
index 7b7c25963bc7..ae3314f30676 100644
--- a/lld/test/wasm/strip-all.test
+++ b/lld/test/wasm/strip-all.test
@@ -1,4 +1,4 @@
-RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.start.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.start.o
RUN: wasm-ld --strip-all -o %t.wasm %t.start.o
RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/strip-debug.test b/lld/test/wasm/strip-debug.test
index 6ee27f8c8a77..12a9dc7816f5 100644
--- a/lld/test/wasm/strip-debug.test
+++ b/lld/test/wasm/strip-debug.test
@@ -1,4 +1,4 @@
-RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.start.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.start.o
RUN: wasm-ld --strip-debug -o %t.wasm %t.start.o
RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/symbol-type-mismatch.ll b/lld/test/wasm/symbol-type-mismatch.ll
deleted file mode 100644
index 4738c4bd00b9..000000000000
--- a/lld/test/wasm/symbol-type-mismatch.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llc -filetype=obj %s -o %t.o
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
-; RUN: not wasm-ld -o %t.wasm %t.o %t.ret32.o 2>&1 | FileCheck %s
-
-target triple = "wasm32-unknown-unknown"
-
- at ret32 = extern_weak global i32, align 4
-
-; CHECK: error: symbol type mismatch: ret32
-; CHECK: >>> defined as WASM_SYMBOL_TYPE_DATA in {{.*}}symbol-type-mismatch.ll.tmp.o
-; CHECK: >>> defined as WASM_SYMBOL_TYPE_FUNCTION in {{.*}}.ret32.o
diff --git a/lld/test/wasm/symbol-type-mismatch.s b/lld/test/wasm/symbol-type-mismatch.s
new file mode 100644
index 000000000000..d68abc3d349f
--- /dev/null
+++ b/lld/test/wasm/symbol-type-mismatch.s
@@ -0,0 +1,9 @@
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
+# RUN: not wasm-ld -o %t.wasm %t.o %t.ret32.o 2>&1 | FileCheck %s
+
+.weak ret32
+
+# CHECK: error: symbol type mismatch: ret32
+# CHECK: >>> defined as WASM_SYMBOL_TYPE_DATA in {{.*}}symbol-type-mismatch.s.tmp.o
+# CHECK: >>> defined as WASM_SYMBOL_TYPE_FUNCTION in {{.*}}.ret32.o
diff --git a/lld/test/wasm/trace-symbol.ll b/lld/test/wasm/trace-symbol.ll
index e589de0f6d43..25154004d6b0 100644
--- a/lld/test/wasm/trace-symbol.ll
+++ b/lld/test/wasm/trace-symbol.ll
@@ -1,4 +1,4 @@
-; RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
; RUN: llc -filetype=obj -o %t.start.o %s
; RUN: wasm-ld -o %t.wasm %t.start.o %t.ret32.o -y ret32 -y _start | FileCheck %s -check-prefix=BOTH
; RUN: wasm-ld -o %t.wasm %t.ret32.o %t.start.o -y ret32 -y _start | FileCheck %s -check-prefix=REVERSED
diff --git a/lld/test/wasm/trace.test b/lld/test/wasm/trace.test
index 023a2ccb2cc0..ae6f6335c4e0 100644
--- a/lld/test/wasm/trace.test
+++ b/lld/test/wasm/trace.test
@@ -1,4 +1,4 @@
-RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.foo.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.foo.o
# Check -t
RUN: wasm-ld %t.foo.o -o %t.t.out.wasm -t 2>&1 | FileCheck %s
diff --git a/lld/test/wasm/undefined-entry.test b/lld/test/wasm/undefined-entry.test
index 3106a76510f4..a5bca16a0de0 100644
--- a/lld/test/wasm/undefined-entry.test
+++ b/lld/test/wasm/undefined-entry.test
@@ -1,4 +1,4 @@
-RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
RUN: not wasm-ld -o %t.wasm %t.ret32.o 2>&1 | FileCheck %s
RUN: not wasm-ld --allow-undefined -o %t.wasm %t.ret32.o 2>&1 | FileCheck %s
RUN: not wasm-ld -entry=foo -o %t.wasm %t.ret32.o 2>&1 | FileCheck %s -check-prefix=CHECK-CUSTOM
diff --git a/lld/test/wasm/version.ll b/lld/test/wasm/version.ll
deleted file mode 100644
index 84932b029c9e..000000000000
--- a/lld/test/wasm/version.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llc -filetype=obj %s -o %t.o
-; RUN: wasm-ld -o %t.wasm %t.o
-; RUN: llvm-readobj --file-headers %t.wasm | FileCheck %s
-
-target triple = "wasm32-unknown-unknown"
-
-define hidden void @_start() local_unnamed_addr #0 {
-entry:
- ret void
-}
-
-; CHECK: Format: WASM
-; CHECK: Arch: wasm32
-; CHECK: AddressSize: 32bit
-; CHECK: Version: 0x1
diff --git a/lld/test/wasm/version.s b/lld/test/wasm/version.s
new file mode 100644
index 000000000000..2ce86f109fef
--- /dev/null
+++ b/lld/test/wasm/version.s
@@ -0,0 +1,13 @@
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s
+# RUN: wasm-ld -o %t.wasm %t.o
+# RUN: llvm-readobj --file-headers %t.wasm | FileCheck %s
+
+ .globl _start
+_start:
+ .functype _start () -> ()
+ end_function
+
+# CHECK: Format: WASM
+# CHECK: Arch: wasm32
+# CHECK: AddressSize: 32bit
+# CHECK: Version: 0x1
diff --git a/lld/test/wasm/visibility-hidden.ll b/lld/test/wasm/visibility-hidden.ll
index 99acd5651f7b..36c29a8e4738 100644
--- a/lld/test/wasm/visibility-hidden.ll
+++ b/lld/test/wasm/visibility-hidden.ll
@@ -1,5 +1,5 @@
; RUN: llc -filetype=obj -o %t.o %s
-; RUN: llc -filetype=obj %S/Inputs/hidden.ll -o %t2.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/hidden.s -o %t2.o
; RUN: rm -f %t2.a
; RUN: llvm-ar rcs %t2.a %t2.o
diff --git a/lld/test/wasm/weak-symbols.ll b/lld/test/wasm/weak-symbols.ll
index 70357b23101d..43e9014ff322 100644
--- a/lld/test/wasm/weak-symbols.ll
+++ b/lld/test/wasm/weak-symbols.ll
@@ -1,5 +1,5 @@
-; RUN: llc -filetype=obj %p/Inputs/weak-symbol1.ll -o %t1.o
-; RUN: llc -filetype=obj %p/Inputs/weak-symbol2.ll -o %t2.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/weak-symbol1.s -o %t1.o
+; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/weak-symbol2.s -o %t2.o
; RUN: llc -filetype=obj %s -o %t.o
; RUN: wasm-ld --export-dynamic -o %t.wasm %t.o %t1.o %t2.o
; RUN: obj2yaml %t.wasm | FileCheck %s
diff --git a/lld/test/wasm/whole-archive.test b/lld/test/wasm/whole-archive.test
index 814acbf432e7..34b5932aeec8 100644
--- a/lld/test/wasm/whole-archive.test
+++ b/lld/test/wasm/whole-archive.test
@@ -1,5 +1,5 @@
-RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.o
-RUN: llc -filetype=obj %p/Inputs/ret32.ll -o %t.ret32.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.o
+RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o
RUN: rm -f %t.a
RUN: llvm-ar rcs %t.a %t.ret32.o
More information about the llvm-commits
mailing list