Files
clang-p2996/llvm/test/CodeGen/WebAssembly/inlineasm-output-template.ll
Alex Bradbury 86cc731f4c [WebAssembly] Always emit functype directives for defined functions
This fixes bug <https://github.com/llvm/llvm-project/issues/54022>. For
now this means that defined functions will have two .functype directives
emitted. Given discussion in that bug has suggested interest in moving
towards using something other than .functype to mark the beginning of a
function (which would, as a side-effect, solve this issue), this patch
doesn't attempt to avoid that duplication.

Some test cases that used CHECK-LABEL: foo rather than CHECK-LABEL: foo:
are broken by this change. This patch updates those test cases to always
have a colon at the end of the CHECK-LABEL string.

Differential Revision: https://reviews.llvm.org/D122134
2022-03-22 09:24:58 +00:00

30 lines
912 B
LLVM

; RUN: llc -mtriple=wasm32 < %s | FileCheck %s
; Skip past the functype directives, which interfere with the CHECK-LABEL
; matches.
;
; Test that %c works with immediates
; CHECK-LABEL: test_inlineasm_c_output_template0:
; CHECK: #TEST 42
define dso_local i32 @test_inlineasm_c_output_template0() {
tail call void asm sideeffect "#TEST ${0:c}", "i"(i32 42)
ret i32 42
}
; Test that %c works with global address
; CHECK-LABEL: test_inlineasm_c_output_template2:
; CHECK: #TEST baz
@baz = internal global i32 0, align 4
define dso_local i32 @test_inlineasm_c_output_template2() {
tail call void asm sideeffect "#TEST ${0:c}", "i"(i32* nonnull @baz)
ret i32 42
}
; Test that %n works with immediates
; CHECK-LABEL: test_inlineasm_c_output_template1:
; CHECK: #TEST -42
define dso_local i32 @test_inlineasm_c_output_template1() {
tail call void asm sideeffect "#TEST ${0:n}", "i"(i32 42)
ret i32 42
}