brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 32f7d67 Raw
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