xref: /llvm-project/llvm/test/CodeGen/ARM/vcmpz.ll (revision f970b007e55d6dab6d84d98a39658a58019eb06e)
1b5caa68fSDavid Green; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2b5caa68fSDavid Green; RUN: llc < %s -mtriple=armv8-eabi -mattr=+neon | FileCheck %s
3b5caa68fSDavid Green
4b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_eq(<4 x i32> %0, <4 x i32> %b) {
5b5caa68fSDavid Green; CHECK-LABEL: vcmpz_eq:
6b5caa68fSDavid Green; CHECK:       @ %bb.0:
7b5caa68fSDavid Green; CHECK-NEXT:    vceq.i32 q0, q0, q1
8b5caa68fSDavid Green; CHECK-NEXT:    bx lr
9b5caa68fSDavid Green  %2 = icmp eq <4 x i32> %0, %b
10b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
11b5caa68fSDavid Green  ret <4 x i32> %3
12b5caa68fSDavid Green}
13b5caa68fSDavid Green
14b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_ne(<4 x i32> %0, <4 x i32> %b) {
15b5caa68fSDavid Green; CHECK-LABEL: vcmpz_ne:
16b5caa68fSDavid Green; CHECK:       @ %bb.0:
17b5caa68fSDavid Green; CHECK-NEXT:    vceq.i32 q8, q0, q1
18b5caa68fSDavid Green; CHECK-NEXT:    vmvn q0, q8
19b5caa68fSDavid Green; CHECK-NEXT:    bx lr
20b5caa68fSDavid Green  %2 = icmp ne <4 x i32> %0, %b
21b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
22b5caa68fSDavid Green  ret <4 x i32> %3
23b5caa68fSDavid Green}
24b5caa68fSDavid Green
25b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_slt(<4 x i32> %0, <4 x i32> %b) {
26b5caa68fSDavid Green; CHECK-LABEL: vcmpz_slt:
27b5caa68fSDavid Green; CHECK:       @ %bb.0:
28b5caa68fSDavid Green; CHECK-NEXT:    vcgt.s32 q0, q1, q0
29b5caa68fSDavid Green; CHECK-NEXT:    bx lr
30b5caa68fSDavid Green  %2 = icmp slt <4 x i32> %0, %b
31b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
32b5caa68fSDavid Green  ret <4 x i32> %3
33b5caa68fSDavid Green}
34b5caa68fSDavid Green
35b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_sle(<4 x i32> %0, <4 x i32> %b) {
36b5caa68fSDavid Green; CHECK-LABEL: vcmpz_sle:
37b5caa68fSDavid Green; CHECK:       @ %bb.0:
38b5caa68fSDavid Green; CHECK-NEXT:    vcge.s32 q0, q1, q0
39b5caa68fSDavid Green; CHECK-NEXT:    bx lr
40b5caa68fSDavid Green  %2 = icmp sle <4 x i32> %0, %b
41b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
42b5caa68fSDavid Green  ret <4 x i32> %3
43b5caa68fSDavid Green}
44b5caa68fSDavid Green
45b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_sgt(<4 x i32> %0, <4 x i32> %b) {
46b5caa68fSDavid Green; CHECK-LABEL: vcmpz_sgt:
47b5caa68fSDavid Green; CHECK:       @ %bb.0:
48b5caa68fSDavid Green; CHECK-NEXT:    vcgt.s32 q0, q0, q1
49b5caa68fSDavid Green; CHECK-NEXT:    bx lr
50b5caa68fSDavid Green  %2 = icmp sgt <4 x i32> %0, %b
51b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
52b5caa68fSDavid Green  ret <4 x i32> %3
53b5caa68fSDavid Green}
54b5caa68fSDavid Green
55b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_sge(<4 x i32> %0, <4 x i32> %b) {
56b5caa68fSDavid Green; CHECK-LABEL: vcmpz_sge:
57b5caa68fSDavid Green; CHECK:       @ %bb.0:
58b5caa68fSDavid Green; CHECK-NEXT:    vcge.s32 q0, q0, q1
59b5caa68fSDavid Green; CHECK-NEXT:    bx lr
60b5caa68fSDavid Green  %2 = icmp sge <4 x i32> %0, %b
61b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
62b5caa68fSDavid Green  ret <4 x i32> %3
63b5caa68fSDavid Green}
64b5caa68fSDavid Green
65b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_ult(<4 x i32> %0, <4 x i32> %b) {
66b5caa68fSDavid Green; CHECK-LABEL: vcmpz_ult:
67b5caa68fSDavid Green; CHECK:       @ %bb.0:
68b5caa68fSDavid Green; CHECK-NEXT:    vcgt.u32 q0, q1, q0
69b5caa68fSDavid Green; CHECK-NEXT:    bx lr
70b5caa68fSDavid Green  %2 = icmp ult <4 x i32> %0, %b
71b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
72b5caa68fSDavid Green  ret <4 x i32> %3
73b5caa68fSDavid Green}
74b5caa68fSDavid Green
75b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_ule(<4 x i32> %0, <4 x i32> %b) {
76b5caa68fSDavid Green; CHECK-LABEL: vcmpz_ule:
77b5caa68fSDavid Green; CHECK:       @ %bb.0:
78b5caa68fSDavid Green; CHECK-NEXT:    vcge.u32 q0, q1, q0
79b5caa68fSDavid Green; CHECK-NEXT:    bx lr
80b5caa68fSDavid Green  %2 = icmp ule <4 x i32> %0, %b
81b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
82b5caa68fSDavid Green  ret <4 x i32> %3
83b5caa68fSDavid Green}
84b5caa68fSDavid Green
85b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_ugt(<4 x i32> %0, <4 x i32> %b) {
86b5caa68fSDavid Green; CHECK-LABEL: vcmpz_ugt:
87b5caa68fSDavid Green; CHECK:       @ %bb.0:
88b5caa68fSDavid Green; CHECK-NEXT:    vcgt.u32 q0, q0, q1
89b5caa68fSDavid Green; CHECK-NEXT:    bx lr
90b5caa68fSDavid Green  %2 = icmp ugt <4 x i32> %0, %b
91b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
92b5caa68fSDavid Green  ret <4 x i32> %3
93b5caa68fSDavid Green}
94b5caa68fSDavid Green
95b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_uge(<4 x i32> %0, <4 x i32> %b) {
96b5caa68fSDavid Green; CHECK-LABEL: vcmpz_uge:
97b5caa68fSDavid Green; CHECK:       @ %bb.0:
98b5caa68fSDavid Green; CHECK-NEXT:    vcge.u32 q0, q0, q1
99b5caa68fSDavid Green; CHECK-NEXT:    bx lr
100b5caa68fSDavid Green  %2 = icmp uge <4 x i32> %0, %b
101b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
102b5caa68fSDavid Green  ret <4 x i32> %3
103b5caa68fSDavid Green}
104b5caa68fSDavid Green
105b5caa68fSDavid Green
106b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_eq(<4 x i32> %0) {
107b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zr_eq:
108b5caa68fSDavid Green; CHECK:       @ %bb.0:
109b5caa68fSDavid Green; CHECK-NEXT:    vceq.i32 q0, q0, #0
110b5caa68fSDavid Green; CHECK-NEXT:    bx lr
111b5caa68fSDavid Green  %2 = icmp eq <4 x i32> %0, zeroinitializer
112b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
113b5caa68fSDavid Green  ret <4 x i32> %3
114b5caa68fSDavid Green}
115b5caa68fSDavid Green
116b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ne(<4 x i32> %0) {
117b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zr_ne:
118b5caa68fSDavid Green; CHECK:       @ %bb.0:
119b5caa68fSDavid Green; CHECK-NEXT:    vceq.i32 q8, q0, #0
120b5caa68fSDavid Green; CHECK-NEXT:    vmvn q0, q8
121b5caa68fSDavid Green; CHECK-NEXT:    bx lr
122b5caa68fSDavid Green  %2 = icmp ne <4 x i32> %0, zeroinitializer
123b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
124b5caa68fSDavid Green  ret <4 x i32> %3
125b5caa68fSDavid Green}
126b5caa68fSDavid Green
127b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_slt(<4 x i32> %0) {
128b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zr_slt:
129b5caa68fSDavid Green; CHECK:       @ %bb.0:
130b5caa68fSDavid Green; CHECK-NEXT:    vclt.s32 q0, q0, #0
131b5caa68fSDavid Green; CHECK-NEXT:    bx lr
132b5caa68fSDavid Green  %2 = icmp slt <4 x i32> %0, zeroinitializer
133b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
134b5caa68fSDavid Green  ret <4 x i32> %3
135b5caa68fSDavid Green}
136b5caa68fSDavid Green
137b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_sle(<4 x i32> %0) {
138b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zr_sle:
139b5caa68fSDavid Green; CHECK:       @ %bb.0:
140b5caa68fSDavid Green; CHECK-NEXT:    vcle.s32 q0, q0, #0
141b5caa68fSDavid Green; CHECK-NEXT:    bx lr
142b5caa68fSDavid Green  %2 = icmp sle <4 x i32> %0, zeroinitializer
143b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
144b5caa68fSDavid Green  ret <4 x i32> %3
145b5caa68fSDavid Green}
146b5caa68fSDavid Green
147b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_sgt(<4 x i32> %0) {
148b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zr_sgt:
149b5caa68fSDavid Green; CHECK:       @ %bb.0:
150b5caa68fSDavid Green; CHECK-NEXT:    vcgt.s32 q0, q0, #0
151b5caa68fSDavid Green; CHECK-NEXT:    bx lr
152b5caa68fSDavid Green  %2 = icmp sgt <4 x i32> %0, zeroinitializer
153b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
154b5caa68fSDavid Green  ret <4 x i32> %3
155b5caa68fSDavid Green}
156b5caa68fSDavid Green
157b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_sge(<4 x i32> %0) {
158b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zr_sge:
159b5caa68fSDavid Green; CHECK:       @ %bb.0:
160b5caa68fSDavid Green; CHECK-NEXT:    vcge.s32 q0, q0, #0
161b5caa68fSDavid Green; CHECK-NEXT:    bx lr
162b5caa68fSDavid Green  %2 = icmp sge <4 x i32> %0, zeroinitializer
163b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
164b5caa68fSDavid Green  ret <4 x i32> %3
165b5caa68fSDavid Green}
166b5caa68fSDavid Green
167b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ult(<4 x i32> %0) {
168b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zr_ult:
169b5caa68fSDavid Green; CHECK:       @ %bb.0:
170b5caa68fSDavid Green; CHECK-NEXT:    vmov.i32 q0, #0x0
171b5caa68fSDavid Green; CHECK-NEXT:    bx lr
172b5caa68fSDavid Green  %2 = icmp ult <4 x i32> %0, zeroinitializer
173b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
174b5caa68fSDavid Green  ret <4 x i32> %3
175b5caa68fSDavid Green}
176b5caa68fSDavid Green
177*f970b007SDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ule(<4 x i32> %0) {
178*f970b007SDavid Green; CHECK-LABEL: vcmpz_zr_ule:
179*f970b007SDavid Green; CHECK:       @ %bb.0:
180*f970b007SDavid Green; CHECK-NEXT:    vmov.i32 q8, #0x0
181*f970b007SDavid Green; CHECK-NEXT:    vcge.u32 q0, q8, q0
182*f970b007SDavid Green; CHECK-NEXT:    bx lr
183*f970b007SDavid Green  %2 = icmp ule <4 x i32> %0, zeroinitializer
184*f970b007SDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
185*f970b007SDavid Green  ret <4 x i32> %3
186*f970b007SDavid Green}
187b5caa68fSDavid Green
188b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ugt(<4 x i32> %0) {
189b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zr_ugt:
190b5caa68fSDavid Green; CHECK:       @ %bb.0:
191b5caa68fSDavid Green; CHECK-NEXT:    vceq.i32 q8, q0, #0
192b5caa68fSDavid Green; CHECK-NEXT:    vmvn q0, q8
193b5caa68fSDavid Green; CHECK-NEXT:    bx lr
194b5caa68fSDavid Green  %2 = icmp ugt <4 x i32> %0, zeroinitializer
195b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
196b5caa68fSDavid Green  ret <4 x i32> %3
197b5caa68fSDavid Green}
198b5caa68fSDavid Green
199b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_uge(<4 x i32> %0) {
200b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zr_uge:
201b5caa68fSDavid Green; CHECK:       @ %bb.0:
202b5caa68fSDavid Green; CHECK-NEXT:    vmov.i8 q0, #0xff
203b5caa68fSDavid Green; CHECK-NEXT:    bx lr
204b5caa68fSDavid Green  %2 = icmp uge <4 x i32> %0, zeroinitializer
205b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
206b5caa68fSDavid Green  ret <4 x i32> %3
207b5caa68fSDavid Green}
208b5caa68fSDavid Green
209b5caa68fSDavid Green
210b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_eq(<4 x i32> %0) {
211b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zl_eq:
212b5caa68fSDavid Green; CHECK:       @ %bb.0:
213b5caa68fSDavid Green; CHECK-NEXT:    vceq.i32 q0, q0, #0
214b5caa68fSDavid Green; CHECK-NEXT:    bx lr
215b5caa68fSDavid Green  %2 = icmp eq <4 x i32> zeroinitializer, %0
216b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
217b5caa68fSDavid Green  ret <4 x i32> %3
218b5caa68fSDavid Green}
219b5caa68fSDavid Green
220b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_ne(<4 x i32> %0) {
221b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zl_ne:
222b5caa68fSDavid Green; CHECK:       @ %bb.0:
223b5caa68fSDavid Green; CHECK-NEXT:    vceq.i32 q8, q0, #0
224b5caa68fSDavid Green; CHECK-NEXT:    vmvn q0, q8
225b5caa68fSDavid Green; CHECK-NEXT:    bx lr
226b5caa68fSDavid Green  %2 = icmp ne <4 x i32> zeroinitializer, %0
227b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
228b5caa68fSDavid Green  ret <4 x i32> %3
229b5caa68fSDavid Green}
230b5caa68fSDavid Green
231b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_slt(<4 x i32> %0) {
232b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zl_slt:
233b5caa68fSDavid Green; CHECK:       @ %bb.0:
234b5caa68fSDavid Green; CHECK-NEXT:    vcgt.s32 q0, q0, #0
235b5caa68fSDavid Green; CHECK-NEXT:    bx lr
236b5caa68fSDavid Green  %2 = icmp slt <4 x i32> zeroinitializer, %0
237b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
238b5caa68fSDavid Green  ret <4 x i32> %3
239b5caa68fSDavid Green}
240b5caa68fSDavid Green
241b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_sle(<4 x i32> %0) {
242b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zl_sle:
243b5caa68fSDavid Green; CHECK:       @ %bb.0:
244b5caa68fSDavid Green; CHECK-NEXT:    vcge.s32 q0, q0, #0
245b5caa68fSDavid Green; CHECK-NEXT:    bx lr
246b5caa68fSDavid Green  %2 = icmp sle <4 x i32> zeroinitializer, %0
247b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
248b5caa68fSDavid Green  ret <4 x i32> %3
249b5caa68fSDavid Green}
250b5caa68fSDavid Green
251b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_sgt(<4 x i32> %0) {
252b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zl_sgt:
253b5caa68fSDavid Green; CHECK:       @ %bb.0:
254b5caa68fSDavid Green; CHECK-NEXT:    vclt.s32 q0, q0, #0
255b5caa68fSDavid Green; CHECK-NEXT:    bx lr
256b5caa68fSDavid Green  %2 = icmp sgt <4 x i32> zeroinitializer, %0
257b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
258b5caa68fSDavid Green  ret <4 x i32> %3
259b5caa68fSDavid Green}
260b5caa68fSDavid Green
261b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_sge(<4 x i32> %0) {
262b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zl_sge:
263b5caa68fSDavid Green; CHECK:       @ %bb.0:
264b5caa68fSDavid Green; CHECK-NEXT:    vcle.s32 q0, q0, #0
265b5caa68fSDavid Green; CHECK-NEXT:    bx lr
266b5caa68fSDavid Green  %2 = icmp sge <4 x i32> zeroinitializer, %0
267b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
268b5caa68fSDavid Green  ret <4 x i32> %3
269b5caa68fSDavid Green}
270b5caa68fSDavid Green
271b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_ult(<4 x i32> %0) {
272b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zl_ult:
273b5caa68fSDavid Green; CHECK:       @ %bb.0:
274b5caa68fSDavid Green; CHECK-NEXT:    vceq.i32 q8, q0, #0
275b5caa68fSDavid Green; CHECK-NEXT:    vmvn q0, q8
276b5caa68fSDavid Green; CHECK-NEXT:    bx lr
277b5caa68fSDavid Green  %2 = icmp ult <4 x i32> zeroinitializer, %0
278b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
279b5caa68fSDavid Green  ret <4 x i32> %3
280b5caa68fSDavid Green}
281b5caa68fSDavid Green
282b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_ule(<4 x i32> %0) {
283b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zl_ule:
284b5caa68fSDavid Green; CHECK:       @ %bb.0:
285b5caa68fSDavid Green; CHECK-NEXT:    vmov.i8 q0, #0xff
286b5caa68fSDavid Green; CHECK-NEXT:    bx lr
287b5caa68fSDavid Green  %2 = icmp ule <4 x i32> zeroinitializer, %0
288b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
289b5caa68fSDavid Green  ret <4 x i32> %3
290b5caa68fSDavid Green}
291b5caa68fSDavid Green
292b5caa68fSDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_ugt(<4 x i32> %0) {
293b5caa68fSDavid Green; CHECK-LABEL: vcmpz_zl_ugt:
294b5caa68fSDavid Green; CHECK:       @ %bb.0:
295b5caa68fSDavid Green; CHECK-NEXT:    vmov.i32 q0, #0x0
296b5caa68fSDavid Green; CHECK-NEXT:    bx lr
297b5caa68fSDavid Green  %2 = icmp ugt <4 x i32> zeroinitializer, %0
298b5caa68fSDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
299b5caa68fSDavid Green  ret <4 x i32> %3
300b5caa68fSDavid Green}
301b5caa68fSDavid Green
302*f970b007SDavid Greendefine arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_uge(<4 x i32> %0) {
303*f970b007SDavid Green; CHECK-LABEL: vcmpz_zl_uge:
304*f970b007SDavid Green; CHECK:       @ %bb.0:
305*f970b007SDavid Green; CHECK-NEXT:    vmov.i32 q8, #0x0
306*f970b007SDavid Green; CHECK-NEXT:    vcge.u32 q0, q8, q0
307*f970b007SDavid Green; CHECK-NEXT:    bx lr
308*f970b007SDavid Green  %2 = icmp uge <4 x i32> zeroinitializer, %0
309*f970b007SDavid Green  %3 = sext <4 x i1> %2 to <4 x i32>
310*f970b007SDavid Green  ret <4 x i32> %3
311*f970b007SDavid Green}
312