• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -o - %s -asm-verbose=false | FileCheck %s
2target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
3target triple = "wasm32-unknown-unknown"
4
5; Test that stackified IMPLICIT_DEF instructions are converted into
6; CONST_I32 to provide an explicit push.
7
8; CHECK:      br_if 2,
9; CHECK:      i32.const $push[[L0:[0-9]+]]=, 0{{$}}
10; CHECK-NEXT: return $pop[[L0]]{{$}}
11define i1 @f() {
12  %a = xor i1 0, 0
13  switch i1 %a, label %C [
14    i1 0, label %A
15    i1 1, label %B
16  ]
17
18A:
19  %b = xor i1 0, 0
20  br label %X
21
22B:
23  %c = xor i1 0, 0
24  br i1 %c, label %D, label %X
25
26C:
27  %d = icmp slt i32 0, 0
28  br i1 %d, label %G, label %F
29
30D:
31  %e = xor i1 0, 0
32  br i1 %e, label %E, label %X
33
34E:
35  %f = xor i1 0, 0
36  br label %X
37
38F:
39  %g = xor i1 0, 0
40  br label %G
41
42G:
43  %h = phi i1 [ undef, %C ], [ false, %F ]
44  br label %X
45
46X:
47  %i = phi i1 [ true, %A ], [ true, %B ], [ true, %D ], [ true, %E ], [ %h, %G ]
48  ret i1 %i
49}
50
51