@@ -45,74 +45,26 @@ define float @f32_minimum(float %a, float %b) {
45
45
;
46
46
; VSX-LABEL: f32_minimum:
47
47
; VSX: # %bb.0: # %entry
48
- ; VSX-NEXT: xscvdpspn 0, 1
49
48
; VSX-NEXT: fcmpu 0, 1, 2
50
- ; VSX-NEXT: xscvdpspn 3, 2
51
- ; VSX-NEXT: mffprwz 3, 0
52
49
; VSX-NEXT: bc 12, 3, .LBB0_2
53
50
; VSX-NEXT: # %bb.1: # %entry
54
- ; VSX-NEXT: xsmindp 0 , 1, 2
55
- ; VSX-NEXT: b .LBB0_3
51
+ ; VSX-NEXT: xsmindp 1 , 1, 2
52
+ ; VSX-NEXT: blr
56
53
; VSX-NEXT: .LBB0_2:
57
- ; VSX-NEXT: addis 4, 2, .LCPI0_0@toc@ha
58
- ; VSX-NEXT: lfs 0, .LCPI0_0@toc@l(4)
59
- ; VSX-NEXT: .LBB0_3: # %entry
60
- ; VSX-NEXT: xoris 3, 3, 32768
61
- ; VSX-NEXT: mffprwz 4, 3
62
- ; VSX-NEXT: cmplwi 3, 0
63
- ; VSX-NEXT: bc 12, 2, .LBB0_5
64
- ; VSX-NEXT: # %bb.4: # %entry
65
- ; VSX-NEXT: fmr 1, 0
66
- ; VSX-NEXT: .LBB0_5: # %entry
67
- ; VSX-NEXT: xoris 3, 4, 32768
68
- ; VSX-NEXT: cmplwi 3, 0
69
- ; VSX-NEXT: bc 12, 2, .LBB0_7
70
- ; VSX-NEXT: # %bb.6: # %entry
71
- ; VSX-NEXT: fmr 2, 1
72
- ; VSX-NEXT: .LBB0_7: # %entry
73
- ; VSX-NEXT: xxlxor 1, 1, 1
74
- ; VSX-NEXT: fcmpu 0, 0, 1
75
- ; VSX-NEXT: bc 12, 2, .LBB0_9
76
- ; VSX-NEXT: # %bb.8: # %entry
77
- ; VSX-NEXT: fmr 2, 0
78
- ; VSX-NEXT: .LBB0_9: # %entry
79
- ; VSX-NEXT: fmr 1, 2
54
+ ; VSX-NEXT: addis 3, 2, .LCPI0_0@toc@ha
55
+ ; VSX-NEXT: lfs 1, .LCPI0_0@toc@l(3)
80
56
; VSX-NEXT: blr
81
57
;
82
58
; AIX-LABEL: f32_minimum:
83
59
; AIX: # %bb.0: # %entry
84
- ; AIX-NEXT: xscvdpspn 0, 1
85
60
; AIX-NEXT: fcmpu 0, 1, 2
86
- ; AIX-NEXT: xscvdpspn 3, 2
87
- ; AIX-NEXT: mffprwz 3, 0
88
61
; AIX-NEXT: bc 12, 3, L..BB0_2
89
62
; AIX-NEXT: # %bb.1: # %entry
90
- ; AIX-NEXT: xsmindp 0 , 1, 2
91
- ; AIX-NEXT: b L..BB0_3
63
+ ; AIX-NEXT: xsmindp 1 , 1, 2
64
+ ; AIX-NEXT: blr
92
65
; AIX-NEXT: L..BB0_2:
93
- ; AIX-NEXT: ld 4, L..C0(2) # %const.0
94
- ; AIX-NEXT: lfs 0, 0(4)
95
- ; AIX-NEXT: L..BB0_3: # %entry
96
- ; AIX-NEXT: xoris 3, 3, 32768
97
- ; AIX-NEXT: mffprwz 4, 3
98
- ; AIX-NEXT: cmplwi 3, 0
99
- ; AIX-NEXT: bc 12, 2, L..BB0_5
100
- ; AIX-NEXT: # %bb.4: # %entry
101
- ; AIX-NEXT: fmr 1, 0
102
- ; AIX-NEXT: L..BB0_5: # %entry
103
- ; AIX-NEXT: xoris 3, 4, 32768
104
- ; AIX-NEXT: cmplwi 3, 0
105
- ; AIX-NEXT: bc 12, 2, L..BB0_7
106
- ; AIX-NEXT: # %bb.6: # %entry
107
- ; AIX-NEXT: fmr 2, 1
108
- ; AIX-NEXT: L..BB0_7: # %entry
109
- ; AIX-NEXT: xxlxor 1, 1, 1
110
- ; AIX-NEXT: fcmpu 0, 0, 1
111
- ; AIX-NEXT: bc 12, 2, L..BB0_9
112
- ; AIX-NEXT: # %bb.8: # %entry
113
- ; AIX-NEXT: fmr 2, 0
114
- ; AIX-NEXT: L..BB0_9: # %entry
115
- ; AIX-NEXT: fmr 1, 2
66
+ ; AIX-NEXT: ld 3, L..C0(2) # %const.0
67
+ ; AIX-NEXT: lfs 1, 0(3)
116
68
; AIX-NEXT: blr
117
69
entry:
118
70
%m = call float @llvm.minimum.f32 (float %a , float %b )
@@ -159,70 +111,26 @@ define float @f32_maximum(float %a, float %b) {
159
111
;
160
112
; VSX-LABEL: f32_maximum:
161
113
; VSX: # %bb.0: # %entry
162
- ; VSX-NEXT: xscvdpspn 0, 1
163
114
; VSX-NEXT: fcmpu 0, 1, 2
164
- ; VSX-NEXT: xscvdpspn 3, 2
165
- ; VSX-NEXT: mffprwz 3, 0
166
115
; VSX-NEXT: bc 12, 3, .LBB1_2
167
116
; VSX-NEXT: # %bb.1: # %entry
168
- ; VSX-NEXT: xsmaxdp 0 , 1, 2
169
- ; VSX-NEXT: b .LBB1_3
117
+ ; VSX-NEXT: xsmaxdp 1 , 1, 2
118
+ ; VSX-NEXT: blr
170
119
; VSX-NEXT: .LBB1_2:
171
- ; VSX-NEXT: addis 4, 2, .LCPI1_0@toc@ha
172
- ; VSX-NEXT: lfs 0, .LCPI1_0@toc@l(4)
173
- ; VSX-NEXT: .LBB1_3: # %entry
174
- ; VSX-NEXT: mffprwz 4, 3
175
- ; VSX-NEXT: cmpwi 3, 0
176
- ; VSX-NEXT: bc 12, 2, .LBB1_5
177
- ; VSX-NEXT: # %bb.4: # %entry
178
- ; VSX-NEXT: fmr 1, 0
179
- ; VSX-NEXT: .LBB1_5: # %entry
180
- ; VSX-NEXT: cmpwi 4, 0
181
- ; VSX-NEXT: bc 12, 2, .LBB1_7
182
- ; VSX-NEXT: # %bb.6: # %entry
183
- ; VSX-NEXT: fmr 2, 1
184
- ; VSX-NEXT: .LBB1_7: # %entry
185
- ; VSX-NEXT: xxlxor 1, 1, 1
186
- ; VSX-NEXT: fcmpu 0, 0, 1
187
- ; VSX-NEXT: bc 12, 2, .LBB1_9
188
- ; VSX-NEXT: # %bb.8: # %entry
189
- ; VSX-NEXT: fmr 2, 0
190
- ; VSX-NEXT: .LBB1_9: # %entry
191
- ; VSX-NEXT: fmr 1, 2
120
+ ; VSX-NEXT: addis 3, 2, .LCPI1_0@toc@ha
121
+ ; VSX-NEXT: lfs 1, .LCPI1_0@toc@l(3)
192
122
; VSX-NEXT: blr
193
123
;
194
124
; AIX-LABEL: f32_maximum:
195
125
; AIX: # %bb.0: # %entry
196
- ; AIX-NEXT: xscvdpspn 0, 1
197
126
; AIX-NEXT: fcmpu 0, 1, 2
198
- ; AIX-NEXT: xscvdpspn 3, 2
199
- ; AIX-NEXT: mffprwz 3, 0
200
127
; AIX-NEXT: bc 12, 3, L..BB1_2
201
128
; AIX-NEXT: # %bb.1: # %entry
202
- ; AIX-NEXT: xsmaxdp 0 , 1, 2
203
- ; AIX-NEXT: b L..BB1_3
129
+ ; AIX-NEXT: xsmaxdp 1 , 1, 2
130
+ ; AIX-NEXT: blr
204
131
; AIX-NEXT: L..BB1_2:
205
- ; AIX-NEXT: ld 4, L..C1(2) # %const.0
206
- ; AIX-NEXT: lfs 0, 0(4)
207
- ; AIX-NEXT: L..BB1_3: # %entry
208
- ; AIX-NEXT: mffprwz 4, 3
209
- ; AIX-NEXT: cmpwi 3, 0
210
- ; AIX-NEXT: bc 12, 2, L..BB1_5
211
- ; AIX-NEXT: # %bb.4: # %entry
212
- ; AIX-NEXT: fmr 1, 0
213
- ; AIX-NEXT: L..BB1_5: # %entry
214
- ; AIX-NEXT: cmpwi 4, 0
215
- ; AIX-NEXT: bc 12, 2, L..BB1_7
216
- ; AIX-NEXT: # %bb.6: # %entry
217
- ; AIX-NEXT: fmr 2, 1
218
- ; AIX-NEXT: L..BB1_7: # %entry
219
- ; AIX-NEXT: xxlxor 1, 1, 1
220
- ; AIX-NEXT: fcmpu 0, 0, 1
221
- ; AIX-NEXT: bc 12, 2, L..BB1_9
222
- ; AIX-NEXT: # %bb.8: # %entry
223
- ; AIX-NEXT: fmr 2, 0
224
- ; AIX-NEXT: L..BB1_9: # %entry
225
- ; AIX-NEXT: fmr 1, 2
132
+ ; AIX-NEXT: ld 3, L..C1(2) # %const.0
133
+ ; AIX-NEXT: lfs 1, 0(3)
226
134
; AIX-NEXT: blr
227
135
entry:
228
136
%m = call float @llvm.maximum.f32 (float %a , float %b )
@@ -272,69 +180,25 @@ define double @f64_minimum(double %a, double %b) {
272
180
; VSX-LABEL: f64_minimum:
273
181
; VSX: # %bb.0: # %entry
274
182
; VSX-NEXT: fcmpu 0, 1, 2
275
- ; VSX-NEXT: mffprd 3, 1
276
183
; VSX-NEXT: bc 12, 3, .LBB2_2
277
184
; VSX-NEXT: # %bb.1: # %entry
278
- ; VSX-NEXT: xsmindp 0 , 1, 2
279
- ; VSX-NEXT: b .LBB2_3
185
+ ; VSX-NEXT: xsmindp 1 , 1, 2
186
+ ; VSX-NEXT: blr
280
187
; VSX-NEXT: .LBB2_2:
281
- ; VSX-NEXT: addis 4, 2, .LCPI2_0@toc@ha
282
- ; VSX-NEXT: lfs 0, .LCPI2_0@toc@l(4)
283
- ; VSX-NEXT: .LBB2_3: # %entry
284
- ; VSX-NEXT: li 5, 1
285
- ; VSX-NEXT: mffprd 4, 2
286
- ; VSX-NEXT: rldic 5, 5, 63, 0
287
- ; VSX-NEXT: cmpd 3, 5
288
- ; VSX-NEXT: bc 12, 2, .LBB2_5
289
- ; VSX-NEXT: # %bb.4: # %entry
290
- ; VSX-NEXT: fmr 1, 0
291
- ; VSX-NEXT: .LBB2_5: # %entry
292
- ; VSX-NEXT: cmpd 4, 5
293
- ; VSX-NEXT: bc 12, 2, .LBB2_7
294
- ; VSX-NEXT: # %bb.6: # %entry
295
- ; VSX-NEXT: fmr 2, 1
296
- ; VSX-NEXT: .LBB2_7: # %entry
297
- ; VSX-NEXT: xxlxor 1, 1, 1
298
- ; VSX-NEXT: fcmpu 0, 0, 1
299
- ; VSX-NEXT: bc 12, 2, .LBB2_9
300
- ; VSX-NEXT: # %bb.8: # %entry
301
- ; VSX-NEXT: fmr 2, 0
302
- ; VSX-NEXT: .LBB2_9: # %entry
303
- ; VSX-NEXT: fmr 1, 2
188
+ ; VSX-NEXT: addis 3, 2, .LCPI2_0@toc@ha
189
+ ; VSX-NEXT: lfs 1, .LCPI2_0@toc@l(3)
304
190
; VSX-NEXT: blr
305
191
;
306
192
; AIX-LABEL: f64_minimum:
307
193
; AIX: # %bb.0: # %entry
308
194
; AIX-NEXT: fcmpu 0, 1, 2
309
- ; AIX-NEXT: mffprd 3, 1
310
195
; AIX-NEXT: bc 12, 3, L..BB2_2
311
196
; AIX-NEXT: # %bb.1: # %entry
312
- ; AIX-NEXT: xsmindp 0 , 1, 2
313
- ; AIX-NEXT: b L..BB2_3
197
+ ; AIX-NEXT: xsmindp 1 , 1, 2
198
+ ; AIX-NEXT: blr
314
199
; AIX-NEXT: L..BB2_2:
315
- ; AIX-NEXT: ld 4, L..C2(2) # %const.0
316
- ; AIX-NEXT: lfs 0, 0(4)
317
- ; AIX-NEXT: L..BB2_3: # %entry
318
- ; AIX-NEXT: li 5, 1
319
- ; AIX-NEXT: mffprd 4, 2
320
- ; AIX-NEXT: rldic 5, 5, 63, 0
321
- ; AIX-NEXT: cmpd 3, 5
322
- ; AIX-NEXT: bc 12, 2, L..BB2_5
323
- ; AIX-NEXT: # %bb.4: # %entry
324
- ; AIX-NEXT: fmr 1, 0
325
- ; AIX-NEXT: L..BB2_5: # %entry
326
- ; AIX-NEXT: cmpd 4, 5
327
- ; AIX-NEXT: bc 12, 2, L..BB2_7
328
- ; AIX-NEXT: # %bb.6: # %entry
329
- ; AIX-NEXT: fmr 2, 1
330
- ; AIX-NEXT: L..BB2_7: # %entry
331
- ; AIX-NEXT: xxlxor 1, 1, 1
332
- ; AIX-NEXT: fcmpu 0, 0, 1
333
- ; AIX-NEXT: bc 12, 2, L..BB2_9
334
- ; AIX-NEXT: # %bb.8: # %entry
335
- ; AIX-NEXT: fmr 2, 0
336
- ; AIX-NEXT: L..BB2_9: # %entry
337
- ; AIX-NEXT: fmr 1, 2
200
+ ; AIX-NEXT: ld 3, L..C2(2) # %const.0
201
+ ; AIX-NEXT: lfs 1, 0(3)
338
202
; AIX-NEXT: blr
339
203
entry:
340
204
%m = call double @llvm.minimum.f64 (double %a , double %b )
@@ -382,65 +246,25 @@ define double @f64_maximum(double %a, double %b) {
382
246
; VSX-LABEL: f64_maximum:
383
247
; VSX: # %bb.0: # %entry
384
248
; VSX-NEXT: fcmpu 0, 1, 2
385
- ; VSX-NEXT: mffprd 3, 1
386
249
; VSX-NEXT: bc 12, 3, .LBB3_2
387
250
; VSX-NEXT: # %bb.1: # %entry
388
- ; VSX-NEXT: xsmaxdp 0 , 1, 2
389
- ; VSX-NEXT: b .LBB3_3
251
+ ; VSX-NEXT: xsmaxdp 1 , 1, 2
252
+ ; VSX-NEXT: blr
390
253
; VSX-NEXT: .LBB3_2:
391
- ; VSX-NEXT: addis 4, 2, .LCPI3_0@toc@ha
392
- ; VSX-NEXT: lfs 0, .LCPI3_0@toc@l(4)
393
- ; VSX-NEXT: .LBB3_3: # %entry
394
- ; VSX-NEXT: mffprd 4, 2
395
- ; VSX-NEXT: cmpdi 3, 0
396
- ; VSX-NEXT: bc 12, 2, .LBB3_5
397
- ; VSX-NEXT: # %bb.4: # %entry
398
- ; VSX-NEXT: fmr 1, 0
399
- ; VSX-NEXT: .LBB3_5: # %entry
400
- ; VSX-NEXT: cmpdi 4, 0
401
- ; VSX-NEXT: bc 12, 2, .LBB3_7
402
- ; VSX-NEXT: # %bb.6: # %entry
403
- ; VSX-NEXT: fmr 2, 1
404
- ; VSX-NEXT: .LBB3_7: # %entry
405
- ; VSX-NEXT: xxlxor 1, 1, 1
406
- ; VSX-NEXT: fcmpu 0, 0, 1
407
- ; VSX-NEXT: bc 12, 2, .LBB3_9
408
- ; VSX-NEXT: # %bb.8: # %entry
409
- ; VSX-NEXT: fmr 2, 0
410
- ; VSX-NEXT: .LBB3_9: # %entry
411
- ; VSX-NEXT: fmr 1, 2
254
+ ; VSX-NEXT: addis 3, 2, .LCPI3_0@toc@ha
255
+ ; VSX-NEXT: lfs 1, .LCPI3_0@toc@l(3)
412
256
; VSX-NEXT: blr
413
257
;
414
258
; AIX-LABEL: f64_maximum:
415
259
; AIX: # %bb.0: # %entry
416
260
; AIX-NEXT: fcmpu 0, 1, 2
417
- ; AIX-NEXT: mffprd 3, 1
418
261
; AIX-NEXT: bc 12, 3, L..BB3_2
419
262
; AIX-NEXT: # %bb.1: # %entry
420
- ; AIX-NEXT: xsmaxdp 0 , 1, 2
421
- ; AIX-NEXT: b L..BB3_3
263
+ ; AIX-NEXT: xsmaxdp 1 , 1, 2
264
+ ; AIX-NEXT: blr
422
265
; AIX-NEXT: L..BB3_2:
423
- ; AIX-NEXT: ld 4, L..C3(2) # %const.0
424
- ; AIX-NEXT: lfs 0, 0(4)
425
- ; AIX-NEXT: L..BB3_3: # %entry
426
- ; AIX-NEXT: mffprd 4, 2
427
- ; AIX-NEXT: cmpdi 3, 0
428
- ; AIX-NEXT: bc 12, 2, L..BB3_5
429
- ; AIX-NEXT: # %bb.4: # %entry
430
- ; AIX-NEXT: fmr 1, 0
431
- ; AIX-NEXT: L..BB3_5: # %entry
432
- ; AIX-NEXT: cmpdi 4, 0
433
- ; AIX-NEXT: bc 12, 2, L..BB3_7
434
- ; AIX-NEXT: # %bb.6: # %entry
435
- ; AIX-NEXT: fmr 2, 1
436
- ; AIX-NEXT: L..BB3_7: # %entry
437
- ; AIX-NEXT: xxlxor 1, 1, 1
438
- ; AIX-NEXT: fcmpu 0, 0, 1
439
- ; AIX-NEXT: bc 12, 2, L..BB3_9
440
- ; AIX-NEXT: # %bb.8: # %entry
441
- ; AIX-NEXT: fmr 2, 0
442
- ; AIX-NEXT: L..BB3_9: # %entry
443
- ; AIX-NEXT: fmr 1, 2
266
+ ; AIX-NEXT: ld 3, L..C3(2) # %const.0
267
+ ; AIX-NEXT: lfs 1, 0(3)
444
268
; AIX-NEXT: blr
445
269
entry:
446
270
%m = call double @llvm.maximum.f64 (double %a , double %b )
0 commit comments