aboutsummaryrefslogtreecommitdiff
path: root/test/wasm/Inputs/call-indirect.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/wasm/Inputs/call-indirect.ll')
-rw-r--r--test/wasm/Inputs/call-indirect.ll17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/wasm/Inputs/call-indirect.ll b/test/wasm/Inputs/call-indirect.ll
new file mode 100644
index 000000000000..388ea60c3a07
--- /dev/null
+++ b/test/wasm/Inputs/call-indirect.ll
@@ -0,0 +1,17 @@
+@indirect_bar = internal local_unnamed_addr global i32 ()* @bar, align 4
+@indirect_foo = internal local_unnamed_addr global i32 ()* @foo, align 4
+
+declare i32 @foo() local_unnamed_addr
+
+define i32 @bar() {
+entry:
+ ret i32 1
+}
+
+define void @call_bar_indirect() local_unnamed_addr #1 {
+entry:
+ %0 = load i32 ()*, i32 ()** @indirect_bar, align 4
+ %1 = load i32 ()*, i32 ()** @indirect_foo, align 4
+ %call = tail call i32 %0() #2
+ ret void
+}