• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -asm-verbose=false | FileCheck %s
2; RUN: llc < %s -asm-verbose=false -fast-isel -fast-isel-abort=1 | FileCheck %s
3
4target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
5target triple = "wasm32-unknown-unknown"
6
7; CHECK-LABEL: return_i32:
8; CHECK-NEXT:  .param i32{{$}}
9; CHECK-NEXT:  .result i32{{$}}
10; CHECK-NEXT:  copy_local  $push0=, $0
11; CHECK-NEXT:  .endfunc{{$}}
12define i32 @return_i32(i32 %p) {
13  ret i32 %p
14}
15
16; CHECK-LABEL: return_i32_twice:
17; CHECK:      store
18; CHECK-NEXT: i32.const $push[[L0:[^,]+]]=, 1{{$}}
19; CHECK-NEXT: return $pop[[L0]]{{$}}
20; CHECK:      store
21; CHECK-NEXT: i32.const $push{{[^,]+}}=, 3{{$}}
22; CHECK-NEXT: .endfunc{{$}}
23define i32 @return_i32_twice(i32 %a) {
24  %b = icmp ne i32 %a, 0
25  br i1 %b, label %true, label %false
26
27true:
28  store i32 0, i32* null
29  ret i32 1
30
31false:
32  store i32 2, i32* null
33  ret i32 3
34}
35