xref: /llvm-project/llvm/test/CodeGen/RISCV/xcvbi.ll (revision 97982a8c605fac7c86d02e641a6cd7898b3ca343)
1f4d2f7a3SLiao Chunyu; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2f4d2f7a3SLiao Chunyu; RUN: llc -O0 -mtriple=riscv32 -mattr=+xcvbi -verify-machineinstrs < %s \
3f4d2f7a3SLiao Chunyu; RUN:   | FileCheck %s --check-prefixes=CHECK_NOPT
4f4d2f7a3SLiao Chunyu; RUN: llc -O3 -mtriple=riscv32 -mattr=+xcvbi -verify-machineinstrs < %s \
5f4d2f7a3SLiao Chunyu; RUN:   | FileCheck %s --check-prefixes=CHECK_OPT
6f4d2f7a3SLiao Chunyu
7f4d2f7a3SLiao Chunyudefine i32 @beqimm(i32 %a) {
8f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: beqimm:
9f4d2f7a3SLiao Chunyu; CHECK_NOPT:       # %bb.0:
10f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    cv.beqimm a0, 5, .LBB0_2
11f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    j .LBB0_1
12f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  .LBB0_1: # %f
13f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    li a0, 0
14f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    ret
15f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  .LBB0_2: # %t
16f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    li a0, 1
17f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    ret
18f4d2f7a3SLiao Chunyu;
19f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: beqimm:
20f4d2f7a3SLiao Chunyu; CHECK_OPT:       # %bb.0:
21f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    cv.bneimm a0, 5, .LBB0_2
22f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  # %bb.1: # %t
23f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    li a0, 1
24f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    ret
25f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  .LBB0_2: # %f
26f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    li a0, 0
27f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    ret
28f4d2f7a3SLiao Chunyu  %1 = icmp eq i32 %a, 5
29f4d2f7a3SLiao Chunyu  br i1 %1, label %t, label %f
30f4d2f7a3SLiao Chunyuf:
31f4d2f7a3SLiao Chunyu  ret i32 0
32f4d2f7a3SLiao Chunyut:
33f4d2f7a3SLiao Chunyu  ret i32 1
34f4d2f7a3SLiao Chunyu}
35f4d2f7a3SLiao Chunyu
36f4d2f7a3SLiao Chunyudefine i32 @bneimm(i32 %a) {
37f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: bneimm:
38f4d2f7a3SLiao Chunyu; CHECK_NOPT:       # %bb.0:
39f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    cv.bneimm a0, 5, .LBB1_2
40f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    j .LBB1_1
41f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  .LBB1_1: # %f
42f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    li a0, 0
43f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    ret
44f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  .LBB1_2: # %t
45f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    li a0, 1
46f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    ret
47f4d2f7a3SLiao Chunyu;
48f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: bneimm:
49f4d2f7a3SLiao Chunyu; CHECK_OPT:       # %bb.0:
50f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    cv.beqimm a0, 5, .LBB1_2
51f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  # %bb.1: # %t
52f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    li a0, 1
53f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    ret
54f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  .LBB1_2: # %f
55f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    li a0, 0
56f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    ret
57f4d2f7a3SLiao Chunyu  %1 = icmp ne i32 %a, 5
58f4d2f7a3SLiao Chunyu  br i1 %1, label %t, label %f
59f4d2f7a3SLiao Chunyuf:
60f4d2f7a3SLiao Chunyu  ret i32 0
61f4d2f7a3SLiao Chunyut:
62f4d2f7a3SLiao Chunyu  ret i32 1
63f4d2f7a3SLiao Chunyu}
64f4d2f7a3SLiao Chunyu
65f4d2f7a3SLiao Chunyudefine i32 @select_beqimm_1(i32 %a, i32 %x, i32 %y) {
66f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_beqimm_1:
67f4d2f7a3SLiao Chunyu; CHECK_NOPT:       # %bb.0: # %entry
68f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, -16
69f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 16
70f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill
71f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a2, 12(sp) # 4-byte Folded Spill
72f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    cv.beqimm a0, -16, .LBB2_2
73f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  # %bb.1: # %entry
74f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 8(sp) # 4-byte Folded Reload
75f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
76f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  .LBB2_2: # %entry
77f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
78f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, 16
79*97982a8cSdlav-sc; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 0
80f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    ret
81f4d2f7a3SLiao Chunyu;
82f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_beqimm_1:
83f4d2f7a3SLiao Chunyu; CHECK_OPT:       # %bb.0: # %entry
84f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    cv.beqimm a0, -16, .LBB2_2
85f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  # %bb.1: # %entry
86f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a2, a1
87f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  .LBB2_2: # %entry
88f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a0, a2
89f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    ret
90f4d2f7a3SLiao Chunyuentry:
91f4d2f7a3SLiao Chunyu  %cmp.not = icmp eq i32 %a, -16
92f4d2f7a3SLiao Chunyu  %cond = select i1 %cmp.not, i32 %y, i32 %x
93f4d2f7a3SLiao Chunyu  ret i32 %cond
94f4d2f7a3SLiao Chunyu}
95f4d2f7a3SLiao Chunyu
96f4d2f7a3SLiao Chunyudefine i32 @select_beqimm_2(i32 %a, i32 %x, i32 %y) {
97f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_beqimm_2:
98f4d2f7a3SLiao Chunyu; CHECK_NOPT:       # %bb.0: # %entry
99f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, -16
100f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 16
101f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill
102f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a2, 12(sp) # 4-byte Folded Spill
103f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    cv.beqimm a0, 0, .LBB3_2
104f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  # %bb.1: # %entry
105f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 8(sp) # 4-byte Folded Reload
106f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
107f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  .LBB3_2: # %entry
108f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
109f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, 16
110*97982a8cSdlav-sc; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 0
111f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    ret
112f4d2f7a3SLiao Chunyu;
113f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_beqimm_2:
114f4d2f7a3SLiao Chunyu; CHECK_OPT:       # %bb.0: # %entry
115f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    cv.beqimm a0, 0, .LBB3_2
116f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  # %bb.1: # %entry
117f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a2, a1
118f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  .LBB3_2: # %entry
119f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a0, a2
120f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    ret
121f4d2f7a3SLiao Chunyuentry:
122f4d2f7a3SLiao Chunyu  %cmp.not = icmp eq i32 %a, 0
123f4d2f7a3SLiao Chunyu  %cond = select i1 %cmp.not, i32 %y, i32 %x
124f4d2f7a3SLiao Chunyu  ret i32 %cond
125f4d2f7a3SLiao Chunyu}
126f4d2f7a3SLiao Chunyu
127f4d2f7a3SLiao Chunyudefine i32 @select_beqimm_3(i32 %a, i32 %x, i32 %y) {
128f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_beqimm_3:
129f4d2f7a3SLiao Chunyu; CHECK_NOPT:       # %bb.0: # %entry
130f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, -16
131f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 16
132f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill
133f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a2, 12(sp) # 4-byte Folded Spill
134f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    cv.beqimm a0, 15, .LBB4_2
135f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  # %bb.1: # %entry
136f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 8(sp) # 4-byte Folded Reload
137f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
138f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  .LBB4_2: # %entry
139f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
140f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, 16
141*97982a8cSdlav-sc; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 0
142f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    ret
143f4d2f7a3SLiao Chunyu;
144f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_beqimm_3:
145f4d2f7a3SLiao Chunyu; CHECK_OPT:       # %bb.0: # %entry
146f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    cv.beqimm a0, 15, .LBB4_2
147f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  # %bb.1: # %entry
148f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a2, a1
149f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  .LBB4_2: # %entry
150f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a0, a2
151f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    ret
152f4d2f7a3SLiao Chunyuentry:
153f4d2f7a3SLiao Chunyu  %cmp.not = icmp eq i32 %a, 15
154f4d2f7a3SLiao Chunyu  %cond = select i1 %cmp.not, i32 %y, i32 %x
155f4d2f7a3SLiao Chunyu  ret i32 %cond
156f4d2f7a3SLiao Chunyu}
157f4d2f7a3SLiao Chunyu
158f4d2f7a3SLiao Chunyudefine i32 @select_no_beqimm_1(i32 %a, i32 %x, i32 %y) {
159f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_no_beqimm_1:
160f4d2f7a3SLiao Chunyu; CHECK_NOPT:       # %bb.0: # %entry
161f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, -16
162f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 16
163f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill
164f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    li a1, -17
165f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a2, 12(sp) # 4-byte Folded Spill
166f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    beq a0, a1, .LBB5_2
167f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  # %bb.1: # %entry
168f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 8(sp) # 4-byte Folded Reload
169f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
170f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  .LBB5_2: # %entry
171f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
172f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, 16
173*97982a8cSdlav-sc; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 0
174f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    ret
175f4d2f7a3SLiao Chunyu;
176f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_no_beqimm_1:
177f4d2f7a3SLiao Chunyu; CHECK_OPT:       # %bb.0: # %entry
178f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    li a3, -17
179f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    beq a0, a3, .LBB5_2
180f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  # %bb.1: # %entry
181f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a2, a1
182f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  .LBB5_2: # %entry
183f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a0, a2
184f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    ret
185f4d2f7a3SLiao Chunyuentry:
186f4d2f7a3SLiao Chunyu  %cmp.not = icmp eq i32 %a, -17
187f4d2f7a3SLiao Chunyu  %cond = select i1 %cmp.not, i32 %y, i32 %x
188f4d2f7a3SLiao Chunyu  ret i32 %cond
189f4d2f7a3SLiao Chunyu}
190f4d2f7a3SLiao Chunyu
191f4d2f7a3SLiao Chunyudefine i32 @select_no_beqimm_2(i32 %a, i32 %x, i32 %y) {
192f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_no_beqimm_2:
193f4d2f7a3SLiao Chunyu; CHECK_NOPT:       # %bb.0: # %entry
194f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, -16
195f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 16
196f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill
197f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    li a1, 16
198f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a2, 12(sp) # 4-byte Folded Spill
199f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    beq a0, a1, .LBB6_2
200f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  # %bb.1: # %entry
201f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 8(sp) # 4-byte Folded Reload
202f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
203f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  .LBB6_2: # %entry
204f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
205f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, 16
206*97982a8cSdlav-sc; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 0
207f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    ret
208f4d2f7a3SLiao Chunyu;
209f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_no_beqimm_2:
210f4d2f7a3SLiao Chunyu; CHECK_OPT:       # %bb.0: # %entry
211f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    li a3, 16
212f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    beq a0, a3, .LBB6_2
213f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  # %bb.1: # %entry
214f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a2, a1
215f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  .LBB6_2: # %entry
216f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a0, a2
217f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    ret
218f4d2f7a3SLiao Chunyuentry:
219f4d2f7a3SLiao Chunyu  %cmp.not = icmp eq i32 %a, 16
220f4d2f7a3SLiao Chunyu  %cond = select i1 %cmp.not, i32 %y, i32 %x
221f4d2f7a3SLiao Chunyu  ret i32 %cond
222f4d2f7a3SLiao Chunyu}
223f4d2f7a3SLiao Chunyu
224f4d2f7a3SLiao Chunyudefine i32 @select_bneimm_1(i32 %a, i32 %x, i32 %y) {
225f4d2f7a3SLiao Chunyu; CHECK_NOPT-LABEL: select_bneimm_1:
226f4d2f7a3SLiao Chunyu; CHECK_NOPT:       # %bb.0: # %entry
227f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, -16
228f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 16
229f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill
230f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a2, 12(sp) # 4-byte Folded Spill
231f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    cv.bneimm a0, 0, .LBB7_2
232f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  # %bb.1: # %entry
233f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 8(sp) # 4-byte Folded Reload
234f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    sw a0, 12(sp) # 4-byte Folded Spill
235f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:  .LBB7_2: # %entry
236f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    lw a0, 12(sp) # 4-byte Folded Reload
237f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    addi sp, sp, 16
238*97982a8cSdlav-sc; CHECK_NOPT-NEXT:    .cfi_def_cfa_offset 0
239f4d2f7a3SLiao Chunyu; CHECK_NOPT-NEXT:    ret
240f4d2f7a3SLiao Chunyu;
241f4d2f7a3SLiao Chunyu; CHECK_OPT-LABEL: select_bneimm_1:
242f4d2f7a3SLiao Chunyu; CHECK_OPT:       # %bb.0: # %entry
243f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    cv.bneimm a0, 0, .LBB7_2
244f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  # %bb.1: # %entry
245f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a2, a1
246f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:  .LBB7_2: # %entry
247f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    mv a0, a2
248f4d2f7a3SLiao Chunyu; CHECK_OPT-NEXT:    ret
249f4d2f7a3SLiao Chunyuentry:
250f4d2f7a3SLiao Chunyu  %cmp.not = icmp ne i32 %a, 0
251f4d2f7a3SLiao Chunyu  %cond = select i1 %cmp.not, i32 %y, i32 %x
252f4d2f7a3SLiao Chunyu  ret i32 %cond
253f4d2f7a3SLiao Chunyu}
254f4d2f7a3SLiao Chunyu
255