mirror of
https://github.com/RPCS3/llvm.git
synced 2026-01-31 01:25:19 +01:00
Summary: This is necessary and sufficient to get simple cases of multiple return working with multivalue enabled. More complex cases will require block and loop signatures to be generalized to potentially be type indices as well. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68684 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@374235 91177308-0d34-0410-b5e6-96231b3b80d8
60 lines
1.5 KiB
YAML
60 lines
1.5 KiB
YAML
# RUN: llc -mtriple=wasm32-unknown-unknown %s -o - -run-pass wasm-argument-move | FileCheck %s
|
|
|
|
# wasm-argument-move pass moves all ARGUMENT instructions to the top of the
|
|
# entry BB.
|
|
---
|
|
name: argument_i32
|
|
# CHECK-LABEL: argument_i32
|
|
body: |
|
|
; CHECK-LABEL: bb.0:
|
|
; CHECK-NEXT: %1:i32 = ARGUMENT_i32 0
|
|
bb.0:
|
|
%0:i32 = CONST_I32 0, implicit-def $arguments
|
|
%1:i32 = ARGUMENT_i32 0, implicit $arguments
|
|
RETURN implicit-def $arguments
|
|
...
|
|
---
|
|
name: argument_i64
|
|
# CHECK-LABEL: argument_i64
|
|
body: |
|
|
; CHECK-LABEL: bb.0:
|
|
; CHECK-NEXT: %1:i64 = ARGUMENT_i64 0
|
|
bb.0:
|
|
%0:i32 = CONST_I32 0, implicit-def $arguments
|
|
%1:i64 = ARGUMENT_i64 0, implicit $arguments
|
|
RETURN implicit-def $arguments
|
|
...
|
|
---
|
|
name: argument_f32
|
|
# CHECK-LABEL: argument_f32
|
|
body: |
|
|
; CHECK-LABEL: bb.0:
|
|
; CHECK-NEXT: %1:f32 = ARGUMENT_f32 0
|
|
bb.0:
|
|
%0:i32 = CONST_I32 0, implicit-def $arguments
|
|
%1:f32 = ARGUMENT_f32 0, implicit $arguments
|
|
RETURN implicit-def $arguments
|
|
...
|
|
---
|
|
name: argument_f64
|
|
# CHECK-LABEL: argument_f64
|
|
body: |
|
|
; CHECK-LABEL: bb.0:
|
|
; CHECK-NEXT: %1:f64 = ARGUMENT_f64 0
|
|
bb.0:
|
|
%0:i32 = CONST_I32 0, implicit-def $arguments
|
|
%1:f64 = ARGUMENT_f64 0, implicit $arguments
|
|
RETURN implicit-def $arguments
|
|
...
|
|
---
|
|
name: argument_exnref
|
|
# CHECK-LABEL: argument_exnref
|
|
body: |
|
|
; CHECK-LABEL: bb.0:
|
|
; CHECK-NEXT: %1:exnref = ARGUMENT_exnref 0
|
|
bb.0:
|
|
%0:i32 = CONST_I32 0, implicit-def $arguments
|
|
%1:exnref = ARGUMENT_exnref 0, implicit $arguments
|
|
RETURN implicit-def $arguments
|
|
...
|