; RUN: llc -o - %s -asm-verbose=false | FileCheck %s target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" target triple = "wasm32-unknown-unknown" ; Test that stackified IMPLICIT_DEF instructions are converted into ; CONST_I32 to provide an explicit push. ; CHECK: br_if 2, ; CHECK: i32.const $push[[L0:[0-9]+]]=, 0{{$}} ; CHECK-NEXT: return $pop[[L0]]{{$}} define i1 @f() { %a = xor i1 0, 0 switch i1 %a, label %C [ i1 0, label %A i1 1, label %B ] A: %b = xor i1 0, 0 br label %X B: %c = xor i1 0, 0 br i1 %c, label %D, label %X C: %d = icmp slt i32 0, 0 br i1 %d, label %G, label %F D: %e = xor i1 0, 0 br i1 %e, label %E, label %X E: %f = xor i1 0, 0 br label %X F: %g = xor i1 0, 0 br label %G G: %h = phi i1 [ undef, %C ], [ false, %F ] br label %X X: %i = phi i1 [ true, %A ], [ true, %B ], [ true, %D ], [ true, %E ], [ %h, %G ] ret i1 %i }