Mercurial > hg > Members > tobaru > cbc > CbC_llvm
comparison test/CodeGen/WebAssembly/comparisons_i32.ll @ 95:afa8332a0e37
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | |
children | 7d135dc70f03 |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
1 ; RUN: llc < %s -asm-verbose=false | FileCheck %s | |
2 | |
3 ; Test that basic 32-bit integer comparison operations assemble as expected. | |
4 | |
5 target datalayout = "e-p:32:32-i64:64-n32:64-S128" | |
6 target triple = "wasm32-unknown-unknown" | |
7 | |
8 ; CHECK-LABEL: eq_i32: | |
9 ; CHECK-NEXT: .param i32{{$}} | |
10 ; CHECK-NEXT: .param i32{{$}} | |
11 ; CHECK-NEXT: .result i32{{$}} | |
12 ; CHECK-NEXT: @1{{$}} | |
13 ; CHECK-NEXT: set_local @2, pop{{$}} | |
14 ; CHECK-NEXT: @0{{$}} | |
15 ; CHECK-NEXT: set_local @3, pop{{$}} | |
16 ; CHECK-NEXT: eq @3, @2{{$}} | |
17 ; CHECK-NEXT: set_local @4, pop{{$}} | |
18 ; CHECK-NEXT: return @4{{$}} | |
19 define i32 @eq_i32(i32 %x, i32 %y) { | |
20 %a = icmp eq i32 %x, %y | |
21 %b = zext i1 %a to i32 | |
22 ret i32 %b | |
23 } | |
24 | |
25 ; CHECK-LABEL: ne_i32: | |
26 ; CHECK: ne @3, @2{{$}} | |
27 ; CHECK-NEXT: set_local @4, pop{{$}} | |
28 define i32 @ne_i32(i32 %x, i32 %y) { | |
29 %a = icmp ne i32 %x, %y | |
30 %b = zext i1 %a to i32 | |
31 ret i32 %b | |
32 } | |
33 | |
34 ; CHECK-LABEL: slt_i32: | |
35 ; CHECK: slt @3, @2{{$}} | |
36 ; CHECK-NEXT: set_local @4, pop{{$}} | |
37 define i32 @slt_i32(i32 %x, i32 %y) { | |
38 %a = icmp slt i32 %x, %y | |
39 %b = zext i1 %a to i32 | |
40 ret i32 %b | |
41 } | |
42 | |
43 ; CHECK-LABEL: sle_i32: | |
44 ; CHECK: sle @3, @2{{$}} | |
45 ; CHECK-NEXT: set_local @4, pop{{$}} | |
46 define i32 @sle_i32(i32 %x, i32 %y) { | |
47 %a = icmp sle i32 %x, %y | |
48 %b = zext i1 %a to i32 | |
49 ret i32 %b | |
50 } | |
51 | |
52 ; CHECK-LABEL: ult_i32: | |
53 ; CHECK: ult @3, @2{{$}} | |
54 ; CHECK-NEXT: set_local @4, pop{{$}} | |
55 define i32 @ult_i32(i32 %x, i32 %y) { | |
56 %a = icmp ult i32 %x, %y | |
57 %b = zext i1 %a to i32 | |
58 ret i32 %b | |
59 } | |
60 | |
61 ; CHECK-LABEL: ule_i32: | |
62 ; CHECK: ule @3, @2{{$}} | |
63 ; CHECK-NEXT: set_local @4, pop{{$}} | |
64 define i32 @ule_i32(i32 %x, i32 %y) { | |
65 %a = icmp ule i32 %x, %y | |
66 %b = zext i1 %a to i32 | |
67 ret i32 %b | |
68 } | |
69 | |
70 ; CHECK-LABEL: sgt_i32: | |
71 ; CHECK: sgt @3, @2{{$}} | |
72 ; CHECK-NEXT: set_local @4, pop{{$}} | |
73 define i32 @sgt_i32(i32 %x, i32 %y) { | |
74 %a = icmp sgt i32 %x, %y | |
75 %b = zext i1 %a to i32 | |
76 ret i32 %b | |
77 } | |
78 | |
79 ; CHECK-LABEL: sge_i32: | |
80 ; CHECK: sge @3, @2{{$}} | |
81 ; CHECK-NEXT: set_local @4, pop{{$}} | |
82 define i32 @sge_i32(i32 %x, i32 %y) { | |
83 %a = icmp sge i32 %x, %y | |
84 %b = zext i1 %a to i32 | |
85 ret i32 %b | |
86 } | |
87 | |
88 ; CHECK-LABEL: ugt_i32: | |
89 ; CHECK: ugt @3, @2{{$}} | |
90 ; CHECK-NEXT: set_local @4, pop{{$}} | |
91 define i32 @ugt_i32(i32 %x, i32 %y) { | |
92 %a = icmp ugt i32 %x, %y | |
93 %b = zext i1 %a to i32 | |
94 ret i32 %b | |
95 } | |
96 | |
97 ; CHECK-LABEL: uge_i32: | |
98 ; CHECK: uge @3, @2{{$}} | |
99 ; CHECK-NEXT: set_local @4, pop{{$}} | |
100 define i32 @uge_i32(i32 %x, i32 %y) { | |
101 %a = icmp uge i32 %x, %y | |
102 %b = zext i1 %a to i32 | |
103 ret i32 %b | |
104 } |