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