| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 | |
| ; RUN: llc -O0 -verify-machineinstrs < %s | FileCheck %s | |
| target triple = "wasm32-unknown-unknown" | |
| define void @test(i1 %x) { | |
| ; CHECK-LABEL: test: | |
| ; CHECK: .functype test (i32) -> () | |
| ; CHECK-NEXT: # %bb.0: | |
| ; CHECK-NEXT: local.get 0 | |
| ; CHECK-NEXT: i32.const -1 | |
| ; CHECK-NEXT: i32.xor | |
| ; CHECK-NEXT: i32.const 1 | |
| ; CHECK-NEXT: i32.and | |
| ; CHECK-NEXT: drop | |
| ; CHECK-NEXT: # %bb.1: # %exit | |
| ; CHECK-NEXT: return | |
| %y = xor i1 %x, true | |
| ; This br_if's operand (%y) is stackified in RegStackify. But this terminator | |
| ; will be removed in CFGSort after that. We need to make sure we unstackify %y | |
| ; so that it can be dropped in ExplicitLocals. | |
| br i1 %y, label %exit, label %exit | |
| exit: | |
| ret void | |
| } |