xref: /llvm-project/llvm/test/CodeGen/WebAssembly/suboptimal-compare.ll (revision a71147dd28c6676fc46e4ec0a5d6e0b0823cced5)
1; RUN: llc < %s -fast-isel -O0 | FileCheck %s
2
3target triple = "wasm32-unknown-unknown"
4
5; CHECK-LABEL: gh_80053:                               # @gh_80053
6; CHECK-NEXT: .functype	gh_80053 (i32) -> (i32)
7; CHECK-NEXT: .local  	i32, i32, i32, i32, i32, i32
8; CHECK:      i32.const	0
9; CHECK-NEXT: local.set	1
10; CHECK-NEXT: local.get	0
11; CHECK-NEXT: local.get	1
12; CHECK-NEXT: i32.eq
13; CHECK-NEXT: local.set	2
14; CHECK-NEXT: i32.const	1
15; CHECK-NEXT: local.set	3
16; CHECK-NEXT: local.get	2
17; CHECK-NEXT: local.get	3
18; CHECK-NEXT: i32.and
19; CHECK-NEXT: local.set	4
20; CHECK-NEXT: block
21; CHECK-NEXT:   local.get	4
22; CHECK-NEXT:   i32.eqz
23; CHECK-NEXT:   br_if   	0                               # 0: down to label0
24; CHECK:        i32.const	0
25; CHECK-NEXT:   local.set	5
26; CHECK-NEXT:   local.get	5
27; CHECK-NEXT:   return
28; CHECK-NEXT: .LBB0_2:                                # %BB03
29; CHECK-NEXT: end_block                               # label0:
30; CHECK-NEXT: i32.const	1
31; CHECK-NEXT: local.set	6
32; CHECK-NEXT: local.get	6
33; CHECK-NEXT: return
34; CHECK-NEXT: end_function
35define i1 @gh_80053(ptr) {
36BB01:
37    %eq = icmp eq ptr %0, null
38    br i1 %eq, label %BB02, label %BB03
39BB02:
40    ret i1 0
41BB03:
42    ret i1 1
43}
44