reg-argument.mir 1.51 KB
# 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
...