1 ; RUN: llc -o - %s -asm-verbose=false | FileCheck %s 2 target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" 3 target 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]]{{$}} 11 define 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 18 A: 19 %b = xor i1 0, 0 20 br label %X 21 22 B: 23 %c = xor i1 0, 0 24 br i1 %c, label %D, label %X 25 26 C: 27 %d = icmp slt i32 0, 0 28 br i1 %d, label %G, label %F 29 30 D: 31 %e = xor i1 0, 0 32 br i1 %e, label %E, label %X 33 34 E: 35 %f = xor i1 0, 0 36 br label %X 37 38 F: 39 %g = xor i1 0, 0 40 br label %G 41 42 G: 43 %h = phi i1 [ undef, %C ], [ false, %F ] 44 br label %X 45 46 X: 47 %i = phi i1 [ true, %A ], [ true, %B ], [ true, %D ], [ true, %E ], [ %h, %G ] 48 ret i1 %i 49 } 50 51