82 lines · plain
1; RUN: llc -mcpu=mvp -filetype=asm -asm-verbose=false %s -o %t.s2; RUN: FileCheck -check-prefix=ASM -input-file %t.s %s3; RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=asm %t.s -o - | FileCheck -check-prefix=ASM %s4; RUN: llc -mcpu=mvp -filetype=obj %s -o - | obj2yaml | FileCheck %s5; RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=obj %t.s -o - | obj2yaml | FileCheck %s6 7; This specifically tests that we can generate a binary from the assembler8; that produces the same binary as the backend would.9 10target triple = "wasm32-unknown-unknown"11 12declare void @bar()13 14define void @foo(i32 %n) {15entry:16 call void @bar()17 ret void18}19 20; Checking assembly is not the point of this test, but if something breaks21; it is easier to spot it here than in the yaml output.22 23; ASM: .file "assembler-binary.ll"24; ASM: .functype bar () -> ()25; ASM: .globl foo26; ASM: foo:27; ASM-NEXT: .functype foo (i32) -> ()28; ASM-NEXT: call bar29; ASM-NEXT: end_function30 31 32; CHECK: --- !WASM33; CHECK-NEXT: FileHeader:34; CHECK-NEXT: Version: 0x135; CHECK-NEXT: Sections:36; CHECK-NEXT: - Type: TYPE37; CHECK-NEXT: Signatures:38; CHECK-NEXT: - Index: 039; CHECK-NEXT: ParamTypes:40; CHECK-NEXT: - I3241; CHECK-NEXT: ReturnTypes: []42; CHECK-NEXT: - Index: 143; CHECK-NEXT: ParamTypes: []44; CHECK-NEXT: ReturnTypes: []45; CHECK-NEXT: - Type: IMPORT46; CHECK-NEXT: Imports:47; CHECK-NEXT: - Module: env48; CHECK-NEXT: Field: __linear_memory49; CHECK-NEXT: Kind: MEMORY50; CHECK-NEXT: Memory:51; CHECK-NEXT: Minimum: 0x052; CHECK-NEXT: - Module: env53; CHECK-NEXT: Field: bar54; CHECK-NEXT: Kind: FUNCTION55; CHECK-NEXT: SigIndex: 156; CHECK-NEXT: - Type: FUNCTION57; CHECK-NEXT: FunctionTypes: [ 0 ]58; CHECK-NEXT: - Type: CODE59; CHECK-NEXT: Relocations:60; CHECK-NEXT: - Type: R_WASM_FUNCTION_INDEX_LEB61; CHECK-NEXT: Index: 162; CHECK-NEXT: Offset: 0x463; CHECK-NEXT: Functions:64; CHECK-NEXT: - Index: 165; CHECK-NEXT: Locals: []66; CHECK-NEXT: Body: 1080808080000B67; CHECK-NEXT: - Type: CUSTOM68; CHECK-NEXT: Name: linking69; CHECK-NEXT: Version: 270; CHECK-NEXT: SymbolTable:71; CHECK-NEXT: - Index: 072; CHECK-NEXT: Kind: FUNCTION73; CHECK-NEXT: Name: foo74; CHECK-NEXT: Flags: [ ]75; CHECK-NEXT: Function: 176; CHECK-NEXT: - Index: 177; CHECK-NEXT: Kind: FUNCTION78; CHECK-NEXT: Name: bar79; CHECK-NEXT: Flags: [ UNDEFINED ]80; CHECK-NEXT: Function: 081; CHECK-NEXT: ...82