Skip to content

Commit aa08a78

Browse files
Your Namewzssyqa
Your Name
authored andcommitted
Update testcase
1 parent 3ab1db8 commit aa08a78

File tree

3 files changed

+350
-365
lines changed

3 files changed

+350
-365
lines changed

llvm/test/CodeGen/ARM/fptosi-sat-scalar.ll

Lines changed: 84 additions & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -67,23 +67,22 @@ define i1 @test_signed_i1_f32(float %f) nounwind {
6767
;
6868
; VFP2-LABEL: test_signed_i1_f32:
6969
; VFP2: @ %bb.0:
70-
; VFP2-NEXT: vmov s2, r0
7170
; VFP2-NEXT: vmov.f32 s0, #-1.000000e+00
72-
; VFP2-NEXT: vcvt.s32.f32 s4, s2
73-
; VFP2-NEXT: vcmp.f32 s2, s0
74-
; VFP2-NEXT: vmov r0, s4
75-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
76-
; VFP2-NEXT: it lt
77-
; VFP2-NEXT: movlt.w r0, #-1
78-
; VFP2-NEXT: vcmp.f32 s2, #0
79-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
80-
; VFP2-NEXT: it gt
81-
; VFP2-NEXT: movgt r0, #0
71+
; VFP2-NEXT: vldr s4, .LCPI0_0
72+
; VFP2-NEXT: vmov s2, r0
8273
; VFP2-NEXT: vcmp.f32 s2, s2
8374
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
75+
; VFP2-NEXT: vmax.f32 d16, d1, d0
76+
; VFP2-NEXT: vmin.f32 d0, d16, d2
77+
; VFP2-NEXT: vcvt.s32.f32 s0, s0
78+
; VFP2-NEXT: vmov r0, s0
8479
; VFP2-NEXT: it vs
8580
; VFP2-NEXT: movvs r0, #0
8681
; VFP2-NEXT: bx lr
82+
; VFP2-NEXT: .p2align 2
83+
; VFP2-NEXT: @ %bb.1:
84+
; VFP2-NEXT: .LCPI0_0:
85+
; VFP2-NEXT: .long 0x00000000 @ float 0
8786
;
8887
; FP16-LABEL: test_signed_i1_f32:
8988
; FP16: @ %bb.0:
@@ -157,21 +156,15 @@ define i8 @test_signed_i8_f32(float %f) nounwind {
157156
;
158157
; VFP2-LABEL: test_signed_i8_f32:
159158
; VFP2: @ %bb.0:
160-
; VFP2-NEXT: vmov s0, r0
161-
; VFP2-NEXT: vldr s2, .LCPI1_0
162-
; VFP2-NEXT: vldr s6, .LCPI1_1
163-
; VFP2-NEXT: vcvt.s32.f32 s4, s0
164-
; VFP2-NEXT: vcmp.f32 s0, s2
165-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
166-
; VFP2-NEXT: vcmp.f32 s0, s6
167-
; VFP2-NEXT: vmov r0, s4
168-
; VFP2-NEXT: it lt
169-
; VFP2-NEXT: mvnlt r0, #127
170-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
171-
; VFP2-NEXT: it gt
172-
; VFP2-NEXT: movgt r0, #127
173-
; VFP2-NEXT: vcmp.f32 s0, s0
159+
; VFP2-NEXT: vmov s2, r0
160+
; VFP2-NEXT: vldr s0, .LCPI1_0
161+
; VFP2-NEXT: vmax.f32 d16, d1, d0
162+
; VFP2-NEXT: vldr s4, .LCPI1_1
163+
; VFP2-NEXT: vcmp.f32 s2, s2
174164
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
165+
; VFP2-NEXT: vmin.f32 d0, d16, d2
166+
; VFP2-NEXT: vcvt.s32.f32 s0, s0
167+
; VFP2-NEXT: vmov r0, s0
175168
; VFP2-NEXT: it vs
176169
; VFP2-NEXT: movvs r0, #0
177170
; VFP2-NEXT: bx lr
@@ -256,22 +249,15 @@ define i13 @test_signed_i13_f32(float %f) nounwind {
256249
;
257250
; VFP2-LABEL: test_signed_i13_f32:
258251
; VFP2: @ %bb.0:
259-
; VFP2-NEXT: vmov s0, r0
260-
; VFP2-NEXT: vldr s2, .LCPI2_0
261-
; VFP2-NEXT: vldr s6, .LCPI2_1
262-
; VFP2-NEXT: vcvt.s32.f32 s4, s0
263-
; VFP2-NEXT: vcmp.f32 s0, s2
264-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
265-
; VFP2-NEXT: vcmp.f32 s0, s6
266-
; VFP2-NEXT: vmov r0, s4
267-
; VFP2-NEXT: itt lt
268-
; VFP2-NEXT: movwlt r0, #61440
269-
; VFP2-NEXT: movtlt r0, #65535
270-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
271-
; VFP2-NEXT: it gt
272-
; VFP2-NEXT: movwgt r0, #4095
273-
; VFP2-NEXT: vcmp.f32 s0, s0
252+
; VFP2-NEXT: vmov s2, r0
253+
; VFP2-NEXT: vldr s0, .LCPI2_0
254+
; VFP2-NEXT: vmax.f32 d16, d1, d0
255+
; VFP2-NEXT: vldr s4, .LCPI2_1
256+
; VFP2-NEXT: vcmp.f32 s2, s2
274257
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
258+
; VFP2-NEXT: vmin.f32 d0, d16, d2
259+
; VFP2-NEXT: vcvt.s32.f32 s0, s0
260+
; VFP2-NEXT: vmov r0, s0
275261
; VFP2-NEXT: it vs
276262
; VFP2-NEXT: movvs r0, #0
277263
; VFP2-NEXT: bx lr
@@ -356,22 +342,15 @@ define i16 @test_signed_i16_f32(float %f) nounwind {
356342
;
357343
; VFP2-LABEL: test_signed_i16_f32:
358344
; VFP2: @ %bb.0:
359-
; VFP2-NEXT: vmov s0, r0
360-
; VFP2-NEXT: vldr s2, .LCPI3_0
361-
; VFP2-NEXT: vldr s6, .LCPI3_1
362-
; VFP2-NEXT: vcvt.s32.f32 s4, s0
363-
; VFP2-NEXT: vcmp.f32 s0, s2
364-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
365-
; VFP2-NEXT: vcmp.f32 s0, s6
366-
; VFP2-NEXT: vmov r0, s4
367-
; VFP2-NEXT: itt lt
368-
; VFP2-NEXT: movwlt r0, #32768
369-
; VFP2-NEXT: movtlt r0, #65535
370-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
371-
; VFP2-NEXT: it gt
372-
; VFP2-NEXT: movwgt r0, #32767
373-
; VFP2-NEXT: vcmp.f32 s0, s0
345+
; VFP2-NEXT: vmov s2, r0
346+
; VFP2-NEXT: vldr s0, .LCPI3_0
347+
; VFP2-NEXT: vmax.f32 d16, d1, d0
348+
; VFP2-NEXT: vldr s4, .LCPI3_1
349+
; VFP2-NEXT: vcmp.f32 s2, s2
374350
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
351+
; VFP2-NEXT: vmin.f32 d0, d16, d2
352+
; VFP2-NEXT: vcvt.s32.f32 s0, s0
353+
; VFP2-NEXT: vmov r0, s0
375354
; VFP2-NEXT: it vs
376355
; VFP2-NEXT: movvs r0, #0
377356
; VFP2-NEXT: bx lr
@@ -456,23 +435,15 @@ define i19 @test_signed_i19_f32(float %f) nounwind {
456435
;
457436
; VFP2-LABEL: test_signed_i19_f32:
458437
; VFP2: @ %bb.0:
459-
; VFP2-NEXT: vmov s0, r0
460-
; VFP2-NEXT: vldr s2, .LCPI4_0
461-
; VFP2-NEXT: vldr s6, .LCPI4_1
462-
; VFP2-NEXT: vcvt.s32.f32 s4, s0
463-
; VFP2-NEXT: vcmp.f32 s0, s2
464-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
465-
; VFP2-NEXT: vcmp.f32 s0, s6
466-
; VFP2-NEXT: vmov r0, s4
467-
; VFP2-NEXT: itt lt
468-
; VFP2-NEXT: movlt r0, #0
469-
; VFP2-NEXT: movtlt r0, #65532
470-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
471-
; VFP2-NEXT: vcmp.f32 s0, s0
472-
; VFP2-NEXT: itt gt
473-
; VFP2-NEXT: movwgt r0, #65535
474-
; VFP2-NEXT: movtgt r0, #3
438+
; VFP2-NEXT: vmov s2, r0
439+
; VFP2-NEXT: vldr s0, .LCPI4_0
440+
; VFP2-NEXT: vmax.f32 d16, d1, d0
441+
; VFP2-NEXT: vldr s4, .LCPI4_1
442+
; VFP2-NEXT: vcmp.f32 s2, s2
475443
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
444+
; VFP2-NEXT: vmin.f32 d0, d16, d2
445+
; VFP2-NEXT: vcvt.s32.f32 s0, s0
446+
; VFP2-NEXT: vmov r0, s0
476447
; VFP2-NEXT: it vs
477448
; VFP2-NEXT: movvs r0, #0
478449
; VFP2-NEXT: bx lr
@@ -2492,23 +2463,22 @@ define i1 @test_signed_i1_f16(half %f) nounwind {
24922463
; VFP2-NEXT: .save {r7, lr}
24932464
; VFP2-NEXT: push {r7, lr}
24942465
; VFP2-NEXT: bl __aeabi_h2f
2495-
; VFP2-NEXT: vmov s2, r0
24962466
; VFP2-NEXT: vmov.f32 s0, #-1.000000e+00
2497-
; VFP2-NEXT: vcvt.s32.f32 s4, s2
2498-
; VFP2-NEXT: vcmp.f32 s2, s0
2499-
; VFP2-NEXT: vmov r0, s4
2500-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2501-
; VFP2-NEXT: it lt
2502-
; VFP2-NEXT: movlt.w r0, #-1
2503-
; VFP2-NEXT: vcmp.f32 s2, #0
2504-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2505-
; VFP2-NEXT: it gt
2506-
; VFP2-NEXT: movgt r0, #0
2467+
; VFP2-NEXT: vldr s4, .LCPI20_0
2468+
; VFP2-NEXT: vmov s2, r0
25072469
; VFP2-NEXT: vcmp.f32 s2, s2
25082470
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2471+
; VFP2-NEXT: vmax.f32 d16, d1, d0
2472+
; VFP2-NEXT: vmin.f32 d0, d16, d2
2473+
; VFP2-NEXT: vcvt.s32.f32 s0, s0
2474+
; VFP2-NEXT: vmov r0, s0
25092475
; VFP2-NEXT: it vs
25102476
; VFP2-NEXT: movvs r0, #0
25112477
; VFP2-NEXT: pop {r7, pc}
2478+
; VFP2-NEXT: .p2align 2
2479+
; VFP2-NEXT: @ %bb.1:
2480+
; VFP2-NEXT: .LCPI20_0:
2481+
; VFP2-NEXT: .long 0x00000000 @ float 0
25122482
;
25132483
; FP16-LABEL: test_signed_i1_f16:
25142484
; FP16: @ %bb.0:
@@ -2588,21 +2558,15 @@ define i8 @test_signed_i8_f16(half %f) nounwind {
25882558
; VFP2-NEXT: .save {r7, lr}
25892559
; VFP2-NEXT: push {r7, lr}
25902560
; VFP2-NEXT: bl __aeabi_h2f
2591-
; VFP2-NEXT: vmov s0, r0
2592-
; VFP2-NEXT: vldr s2, .LCPI21_0
2593-
; VFP2-NEXT: vldr s6, .LCPI21_1
2594-
; VFP2-NEXT: vcvt.s32.f32 s4, s0
2595-
; VFP2-NEXT: vcmp.f32 s0, s2
2596-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2597-
; VFP2-NEXT: vcmp.f32 s0, s6
2598-
; VFP2-NEXT: vmov r0, s4
2599-
; VFP2-NEXT: it lt
2600-
; VFP2-NEXT: mvnlt r0, #127
2601-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2602-
; VFP2-NEXT: it gt
2603-
; VFP2-NEXT: movgt r0, #127
2604-
; VFP2-NEXT: vcmp.f32 s0, s0
2561+
; VFP2-NEXT: vmov s2, r0
2562+
; VFP2-NEXT: vldr s0, .LCPI21_0
2563+
; VFP2-NEXT: vmax.f32 d16, d1, d0
2564+
; VFP2-NEXT: vldr s4, .LCPI21_1
2565+
; VFP2-NEXT: vcmp.f32 s2, s2
26052566
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2567+
; VFP2-NEXT: vmin.f32 d0, d16, d2
2568+
; VFP2-NEXT: vcvt.s32.f32 s0, s0
2569+
; VFP2-NEXT: vmov r0, s0
26062570
; VFP2-NEXT: it vs
26072571
; VFP2-NEXT: movvs r0, #0
26082572
; VFP2-NEXT: pop {r7, pc}
@@ -2693,22 +2657,15 @@ define i13 @test_signed_i13_f16(half %f) nounwind {
26932657
; VFP2-NEXT: .save {r7, lr}
26942658
; VFP2-NEXT: push {r7, lr}
26952659
; VFP2-NEXT: bl __aeabi_h2f
2696-
; VFP2-NEXT: vmov s0, r0
2697-
; VFP2-NEXT: vldr s2, .LCPI22_0
2698-
; VFP2-NEXT: vldr s6, .LCPI22_1
2699-
; VFP2-NEXT: vcvt.s32.f32 s4, s0
2700-
; VFP2-NEXT: vcmp.f32 s0, s2
2701-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2702-
; VFP2-NEXT: vcmp.f32 s0, s6
2703-
; VFP2-NEXT: vmov r0, s4
2704-
; VFP2-NEXT: itt lt
2705-
; VFP2-NEXT: movwlt r0, #61440
2706-
; VFP2-NEXT: movtlt r0, #65535
2707-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2708-
; VFP2-NEXT: it gt
2709-
; VFP2-NEXT: movwgt r0, #4095
2710-
; VFP2-NEXT: vcmp.f32 s0, s0
2660+
; VFP2-NEXT: vmov s2, r0
2661+
; VFP2-NEXT: vldr s0, .LCPI22_0
2662+
; VFP2-NEXT: vmax.f32 d16, d1, d0
2663+
; VFP2-NEXT: vldr s4, .LCPI22_1
2664+
; VFP2-NEXT: vcmp.f32 s2, s2
27112665
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2666+
; VFP2-NEXT: vmin.f32 d0, d16, d2
2667+
; VFP2-NEXT: vcvt.s32.f32 s0, s0
2668+
; VFP2-NEXT: vmov r0, s0
27122669
; VFP2-NEXT: it vs
27132670
; VFP2-NEXT: movvs r0, #0
27142671
; VFP2-NEXT: pop {r7, pc}
@@ -2799,22 +2756,15 @@ define i16 @test_signed_i16_f16(half %f) nounwind {
27992756
; VFP2-NEXT: .save {r7, lr}
28002757
; VFP2-NEXT: push {r7, lr}
28012758
; VFP2-NEXT: bl __aeabi_h2f
2802-
; VFP2-NEXT: vmov s0, r0
2803-
; VFP2-NEXT: vldr s2, .LCPI23_0
2804-
; VFP2-NEXT: vldr s6, .LCPI23_1
2805-
; VFP2-NEXT: vcvt.s32.f32 s4, s0
2806-
; VFP2-NEXT: vcmp.f32 s0, s2
2807-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2808-
; VFP2-NEXT: vcmp.f32 s0, s6
2809-
; VFP2-NEXT: vmov r0, s4
2810-
; VFP2-NEXT: itt lt
2811-
; VFP2-NEXT: movwlt r0, #32768
2812-
; VFP2-NEXT: movtlt r0, #65535
2813-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2814-
; VFP2-NEXT: it gt
2815-
; VFP2-NEXT: movwgt r0, #32767
2816-
; VFP2-NEXT: vcmp.f32 s0, s0
2759+
; VFP2-NEXT: vmov s2, r0
2760+
; VFP2-NEXT: vldr s0, .LCPI23_0
2761+
; VFP2-NEXT: vmax.f32 d16, d1, d0
2762+
; VFP2-NEXT: vldr s4, .LCPI23_1
2763+
; VFP2-NEXT: vcmp.f32 s2, s2
28172764
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2765+
; VFP2-NEXT: vmin.f32 d0, d16, d2
2766+
; VFP2-NEXT: vcvt.s32.f32 s0, s0
2767+
; VFP2-NEXT: vmov r0, s0
28182768
; VFP2-NEXT: it vs
28192769
; VFP2-NEXT: movvs r0, #0
28202770
; VFP2-NEXT: pop {r7, pc}
@@ -2905,23 +2855,15 @@ define i19 @test_signed_i19_f16(half %f) nounwind {
29052855
; VFP2-NEXT: .save {r7, lr}
29062856
; VFP2-NEXT: push {r7, lr}
29072857
; VFP2-NEXT: bl __aeabi_h2f
2908-
; VFP2-NEXT: vmov s0, r0
2909-
; VFP2-NEXT: vldr s2, .LCPI24_0
2910-
; VFP2-NEXT: vldr s6, .LCPI24_1
2911-
; VFP2-NEXT: vcvt.s32.f32 s4, s0
2912-
; VFP2-NEXT: vcmp.f32 s0, s2
2913-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2914-
; VFP2-NEXT: vcmp.f32 s0, s6
2915-
; VFP2-NEXT: vmov r0, s4
2916-
; VFP2-NEXT: itt lt
2917-
; VFP2-NEXT: movlt r0, #0
2918-
; VFP2-NEXT: movtlt r0, #65532
2919-
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2920-
; VFP2-NEXT: vcmp.f32 s0, s0
2921-
; VFP2-NEXT: itt gt
2922-
; VFP2-NEXT: movwgt r0, #65535
2923-
; VFP2-NEXT: movtgt r0, #3
2858+
; VFP2-NEXT: vmov s2, r0
2859+
; VFP2-NEXT: vldr s0, .LCPI24_0
2860+
; VFP2-NEXT: vmax.f32 d16, d1, d0
2861+
; VFP2-NEXT: vldr s4, .LCPI24_1
2862+
; VFP2-NEXT: vcmp.f32 s2, s2
29242863
; VFP2-NEXT: vmrs APSR_nzcv, fpscr
2864+
; VFP2-NEXT: vmin.f32 d0, d16, d2
2865+
; VFP2-NEXT: vcvt.s32.f32 s0, s0
2866+
; VFP2-NEXT: vmov r0, s0
29252867
; VFP2-NEXT: it vs
29262868
; VFP2-NEXT: movvs r0, #0
29272869
; VFP2-NEXT: pop {r7, pc}

0 commit comments

Comments
 (0)