xref: /llvm-project/llvm/test/CodeGen/WebAssembly/inlineasm-output-template.ll (revision 73856247eef35f5336e485dc009842a5b991c421)
17ab164c4SNick Desaulniers; RUN: llc -mtriple=wasm32 < %s | FileCheck %s
27ab164c4SNick Desaulniers
386cc731fSAlex Bradbury; Skip past the functype directives, which interfere with the CHECK-LABEL
486cc731fSAlex Bradbury; matches.
586cc731fSAlex Bradbury;
67ab164c4SNick Desaulniers; Test that %c works with immediates
786cc731fSAlex Bradbury; CHECK-LABEL: test_inlineasm_c_output_template0:
87ab164c4SNick Desaulniers; CHECK: #TEST 42
97ab164c4SNick Desaulniersdefine dso_local i32 @test_inlineasm_c_output_template0() {
107ab164c4SNick Desaulniers  tail call void asm sideeffect "#TEST ${0:c}", "i"(i32 42)
117ab164c4SNick Desaulniers  ret i32 42
127ab164c4SNick Desaulniers}
137ab164c4SNick Desaulniers
147ab164c4SNick Desaulniers; Test that %c works with global address
1586cc731fSAlex Bradbury; CHECK-LABEL: test_inlineasm_c_output_template2:
167ab164c4SNick Desaulniers; CHECK: #TEST baz
177ab164c4SNick Desaulniers@baz = internal global i32 0, align 4
187ab164c4SNick Desaulniersdefine dso_local i32 @test_inlineasm_c_output_template2() {
19*73856247SNikita Popov  tail call void asm sideeffect "#TEST ${0:c}", "i"(ptr nonnull @baz)
207ab164c4SNick Desaulniers  ret i32 42
217ab164c4SNick Desaulniers}
227ab164c4SNick Desaulniers
237ab164c4SNick Desaulniers; Test that %n works with immediates
2486cc731fSAlex Bradbury; CHECK-LABEL: test_inlineasm_c_output_template1:
257ab164c4SNick Desaulniers; CHECK: #TEST -42
267ab164c4SNick Desaulniersdefine dso_local i32 @test_inlineasm_c_output_template1() {
277ab164c4SNick Desaulniers  tail call void asm sideeffect "#TEST ${0:n}", "i"(i32 42)
287ab164c4SNick Desaulniers  ret i32 42
297ab164c4SNick Desaulniers}
30