1 ; FIXME: FastISel currently returns false if it hits code that uses VSX
2 ; registers and with -fast-isel-abort turned on the test case will then fail.
3 ; When fastisel better supports VSX fix up this test case.
5 ; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 -mattr=-vsx | FileCheck %s --check-prefix=ELF64
6 define void @t1a(float %a) uwtable ssp {
9 %cmp = fcmp oeq float %a, 0.000000e+00
13 br i1 %cmp, label %if.then, label %if.end
15 if.then: ; preds = %entry
19 if.end: ; preds = %if.then, %entry
25 define void @t1b(float %a) uwtable ssp {
28 %cmp = fcmp oeq float %a, -0.000000e+00
32 br i1 %cmp, label %if.then, label %if.end
34 if.then: ; preds = %entry
38 if.end: ; preds = %if.then, %entry
42 define void @t2a(double %a) uwtable ssp {
45 %cmp = fcmp oeq double %a, 0.000000e+00
49 br i1 %cmp, label %if.then, label %if.end
51 if.then: ; preds = %entry
55 if.end: ; preds = %if.then, %entry
59 define void @t2b(double %a) uwtable ssp {
62 %cmp = fcmp oeq double %a, -0.000000e+00
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 @t4(i8 signext %a) uwtable ssp {
79 %cmp = icmp eq i8 %a, -1
82 br i1 %cmp, label %if.then, label %if.end
84 if.then: ; preds = %entry
88 if.end: ; preds = %if.then, %entry
92 define void @t5(i8 zeroext %a) uwtable ssp {
95 %cmp = icmp eq i8 %a, 1
98 br i1 %cmp, label %if.then, label %if.end
100 if.then: ; preds = %entry
104 if.end: ; preds = %if.then, %entry
108 define void @t6(i16 signext %a) uwtable ssp {
111 %cmp = icmp eq i16 %a, -1
114 br i1 %cmp, label %if.then, label %if.end
116 if.then: ; preds = %entry
120 if.end: ; preds = %if.then, %entry
124 define void @t7(i16 zeroext %a) uwtable ssp {
127 %cmp = icmp eq i16 %a, 1
130 br i1 %cmp, label %if.then, label %if.end
132 if.then: ; preds = %entry
136 if.end: ; preds = %if.then, %entry
140 define void @t8(i32 %a) uwtable ssp {
143 %cmp = icmp eq i32 %a, -1
145 br i1 %cmp, label %if.then, label %if.end
147 if.then: ; preds = %entry
151 if.end: ; preds = %if.then, %entry
155 define void @t9(i32 %a) uwtable ssp {
158 %cmp = icmp eq i32 %a, 1
160 br i1 %cmp, label %if.then, label %if.end
162 if.then: ; preds = %entry
166 if.end: ; preds = %if.then, %entry
170 define void @t10(i32 %a) uwtable ssp {
173 %cmp = icmp eq i32 %a, 384
175 br i1 %cmp, label %if.then, label %if.end
177 if.then: ; preds = %entry
181 if.end: ; preds = %if.then, %entry
185 define void @t11(i32 %a) uwtable ssp {
188 %cmp = icmp eq i32 %a, 4096
190 br i1 %cmp, label %if.then, label %if.end
192 if.then: ; preds = %entry
196 if.end: ; preds = %if.then, %entry
200 define void @t12(i8 %a) uwtable ssp {
203 %cmp = icmp ugt i8 %a, -113
206 br i1 %cmp, label %if.then, label %if.end
208 if.then: ; preds = %entry
212 if.end: ; preds = %if.then, %entry
216 define void @t13() nounwind ssp {
219 %cmp = icmp slt i32 -123, -2147483648
223 br i1 %cmp, label %if.then, label %if.end
225 if.then: ; preds = %entry
228 if.end: ; preds = %entry
232 define void @t14(i64 %a) uwtable ssp {
235 %cmp = icmp eq i64 %a, -1
237 br i1 %cmp, label %if.then, label %if.end
239 if.then: ; preds = %entry
243 if.end: ; preds = %if.then, %entry
247 define void @t15(i64 %a) uwtable ssp {
250 %cmp = icmp eq i64 %a, 1
252 br i1 %cmp, label %if.then, label %if.end
254 if.then: ; preds = %entry
258 if.end: ; preds = %if.then, %entry
262 define void @t16(i64 %a) uwtable ssp {
265 %cmp = icmp eq i64 %a, 384
267 br i1 %cmp, label %if.then, label %if.end
269 if.then: ; preds = %entry
273 if.end: ; preds = %if.then, %entry
277 define void @t17(i64 %a) uwtable ssp {
280 %cmp = icmp eq i64 %a, 32768
281 ; Extra operand so we don't match on cmpdi.
282 ; ELF64: cmpd {{[0-9]+}}
283 br i1 %cmp, label %if.then, label %if.end
285 if.then: ; preds = %entry
289 if.end: ; preds = %if.then, %entry