1 ; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 -mattr=-vsx | FileCheck %s --check-prefix=ELF64
2 ; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -mtriple=powerpc64le-unknown-linux-gnu -mattr=+vsx | FileCheck %s --check-prefix=VSX
3 ; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -mtriple=powerpc-unknown-linux-gnu -mcpu=e500 -mattr=spe | FileCheck %s --check-prefix=SPE
7 define void @t1a(float %a) nounwind {
12 %cmp = fcmp oeq float %a, 0.000000e+00
20 br i1 %cmp, label %if.then, label %if.end
22 if.then: ; preds = %entry
26 if.end: ; preds = %if.then, %entry
30 define void @t1b(float %a) nounwind {
35 %cmp = fcmp oeq float %a, -0.000000e+00
43 br i1 %cmp, label %if.then, label %if.end
45 if.then: ; preds = %entry
49 if.end: ; preds = %if.then, %entry
53 define void @t1c(float %a) nounwind {
58 %cmp = fcmp oeq float -0.000000e+00, %a
66 br i1 %cmp, label %if.then, label %if.end
68 if.then: ; preds = %entry
72 if.end: ; preds = %if.then, %entry
76 define void @t2a(double %a) nounwind {
81 %cmp = fcmp oeq double %a, 0.000000e+00
89 br i1 %cmp, label %if.then, label %if.end
91 if.then: ; preds = %entry
95 if.end: ; preds = %if.then, %entry
99 define void @t2b(double %a) nounwind {
104 %cmp = fcmp oeq double %a, -0.000000e+00
112 br i1 %cmp, label %if.then, label %if.end
114 if.then: ; preds = %entry
118 if.end: ; preds = %if.then, %entry
122 define void @t2c(double %a) nounwind {
127 %cmp = fcmp oeq double -0.000000e+00, %a
135 br i1 %cmp, label %if.then, label %if.end
137 if.then: ; preds = %entry
141 if.end: ; preds = %if.then, %entry
145 define void @t4(i8 signext %a) nounwind {
148 %cmp = icmp eq i8 %a, -1
151 br i1 %cmp, label %if.then, label %if.end
153 if.then: ; preds = %entry
157 if.end: ; preds = %if.then, %entry
161 define void @t5(i8 zeroext %a) nounwind {
164 %cmp = icmp eq i8 %a, 1
167 br i1 %cmp, label %if.then, label %if.end
169 if.then: ; preds = %entry
173 if.end: ; preds = %if.then, %entry
177 define void @t5a(i8 zeroext %a) nounwind {
180 %cmp = icmp eq i8 1, %a
183 br i1 %cmp, label %if.then, label %if.end
185 if.then: ; preds = %entry
189 if.end: ; preds = %if.then, %entry
193 define void @t6(i16 signext %a) nounwind {
196 %cmp = icmp eq i16 %a, -1
199 br i1 %cmp, label %if.then, label %if.end
201 if.then: ; preds = %entry
205 if.end: ; preds = %if.then, %entry
209 define void @t7(i16 zeroext %a) nounwind {
212 %cmp = icmp eq i16 %a, 1
215 br i1 %cmp, label %if.then, label %if.end
217 if.then: ; preds = %entry
221 if.end: ; preds = %if.then, %entry
225 define void @t7a(i16 zeroext %a) nounwind {
228 %cmp = icmp eq i16 1, %a
231 br i1 %cmp, label %if.then, label %if.end
233 if.then: ; preds = %entry
237 if.end: ; preds = %if.then, %entry
241 define void @t8(i32 %a) nounwind {
244 %cmp = icmp eq i32 %a, -1
246 br i1 %cmp, label %if.then, label %if.end
248 if.then: ; preds = %entry
252 if.end: ; preds = %if.then, %entry
256 define void @t9(i32 %a) nounwind {
259 %cmp = icmp eq i32 %a, 1
261 br i1 %cmp, label %if.then, label %if.end
263 if.then: ; preds = %entry
267 if.end: ; preds = %if.then, %entry
271 define void @t10(i32 %a) nounwind {
274 %cmp = icmp eq i32 %a, 384
276 br i1 %cmp, label %if.then, label %if.end
278 if.then: ; preds = %entry
282 if.end: ; preds = %if.then, %entry
286 define void @t11(i32 %a) nounwind {
289 %cmp = icmp eq i32 %a, 4096
291 br i1 %cmp, label %if.then, label %if.end
293 if.then: ; preds = %entry
297 if.end: ; preds = %if.then, %entry
301 define void @t11a(i32 %a) nounwind {
304 %cmp = icmp eq i32 4096, %a
306 br i1 %cmp, label %if.then, label %if.end
308 if.then: ; preds = %entry
312 if.end: ; preds = %if.then, %entry
316 define void @t12(i8 %a) nounwind {
319 %cmp = icmp ugt i8 %a, -113
322 br i1 %cmp, label %if.then, label %if.end
324 if.then: ; preds = %entry
328 if.end: ; preds = %if.then, %entry
332 define void @t13() nounwind ssp {
335 %cmp = icmp slt i32 -123, -2147483648
339 br i1 %cmp, label %if.then, label %if.end
341 if.then: ; preds = %entry
344 if.end: ; preds = %entry
348 define void @t14(i64 %a) nounwind {
351 %cmp = icmp eq i64 %a, -1
353 br i1 %cmp, label %if.then, label %if.end
355 if.then: ; preds = %entry
359 if.end: ; preds = %if.then, %entry
363 define void @t15(i64 %a) nounwind {
366 %cmp = icmp eq i64 %a, 1
368 br i1 %cmp, label %if.then, label %if.end
370 if.then: ; preds = %entry
374 if.end: ; preds = %if.then, %entry
378 define void @t16(i64 %a) nounwind {
381 %cmp = icmp eq i64 %a, 384
383 br i1 %cmp, label %if.then, label %if.end
385 if.then: ; preds = %entry
389 if.end: ; preds = %if.then, %entry
393 define void @t17(i64 %a) nounwind {
396 %cmp = icmp eq i64 %a, 32768
397 ; Extra operand so we don't match on cmpdi.
398 ; ELF64: cmpd {{[0-9]+}}
399 br i1 %cmp, label %if.then, label %if.end
401 if.then: ; preds = %entry
405 if.end: ; preds = %if.then, %entry
409 define void @t17a(i64 %a) nounwind {
412 %cmp = icmp eq i64 32768, %a
413 ; Extra operand so we don't match on cmpdi.
414 ; ELF64: cmpd {{[0-9]+}}
415 br i1 %cmp, label %if.then, label %if.end
417 if.then: ; preds = %entry
421 if.end: ; preds = %if.then, %entry