|
9 | 9 | define void @test_half_ceil(half %a0, ptr %p0) nounwind { |
10 | 10 | ; F16C-LABEL: test_half_ceil: |
11 | 11 | ; F16C: # %bb.0: |
12 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
13 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
14 | 12 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
15 | 13 | ; F16C-NEXT: vroundss $10, %xmm0, %xmm0, %xmm0 |
16 | 14 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -107,8 +105,6 @@ define void @test_half_cos(half %a0, ptr %p0) nounwind { |
107 | 105 | ; F16C: # %bb.0: |
108 | 106 | ; F16C-NEXT: pushq %rbx |
109 | 107 | ; F16C-NEXT: movq %rdi, %rbx |
110 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
111 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
112 | 108 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
113 | 109 | ; F16C-NEXT: callq cosf@PLT |
114 | 110 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -168,8 +164,6 @@ define void @test_half_exp(half %a0, ptr %p0) nounwind { |
168 | 164 | ; F16C: # %bb.0: |
169 | 165 | ; F16C-NEXT: pushq %rbx |
170 | 166 | ; F16C-NEXT: movq %rdi, %rbx |
171 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
172 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
173 | 167 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
174 | 168 | ; F16C-NEXT: callq expf@PLT |
175 | 169 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -229,8 +223,6 @@ define void @test_half_exp2(half %a0, ptr %p0) nounwind { |
229 | 223 | ; F16C: # %bb.0: |
230 | 224 | ; F16C-NEXT: pushq %rbx |
231 | 225 | ; F16C-NEXT: movq %rdi, %rbx |
232 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
233 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
234 | 226 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
235 | 227 | ; F16C-NEXT: callq exp2f@PLT |
236 | 228 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -290,8 +282,6 @@ define void @test_half_exp10(half %a0, ptr %p0) nounwind { |
290 | 282 | ; F16C: # %bb.0: |
291 | 283 | ; F16C-NEXT: pushq %rbx |
292 | 284 | ; F16C-NEXT: movq %rdi, %rbx |
293 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
294 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
295 | 285 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
296 | 286 | ; F16C-NEXT: callq exp10f@PLT |
297 | 287 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -349,8 +339,6 @@ define void @test_half_exp10(half %a0, ptr %p0) nounwind { |
349 | 339 | define void @test_half_fabs(half %a0, ptr %p0) nounwind { |
350 | 340 | ; F16C-LABEL: test_half_fabs: |
351 | 341 | ; F16C: # %bb.0: |
352 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
353 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
354 | 342 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
355 | 343 | ; F16C-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0 |
356 | 344 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -392,8 +380,6 @@ define void @test_half_fabs(half %a0, ptr %p0) nounwind { |
392 | 380 | define void @test_half_floor(half %a0, ptr %p0) nounwind { |
393 | 381 | ; F16C-LABEL: test_half_floor: |
394 | 382 | ; F16C: # %bb.0: |
395 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
396 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
397 | 383 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
398 | 384 | ; F16C-NEXT: vroundss $9, %xmm0, %xmm0, %xmm0 |
399 | 385 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -447,14 +433,8 @@ define void @test_half_fma(half %a0, half %a1, half %a2, ptr %p0) nounwind { |
447 | 433 | ; F16C: # %bb.0: |
448 | 434 | ; F16C-NEXT: pushq %rbx |
449 | 435 | ; F16C-NEXT: movq %rdi, %rbx |
450 | | -; F16C-NEXT: vpextrw $0, %xmm2, %eax |
451 | | -; F16C-NEXT: vpextrw $0, %xmm1, %ecx |
452 | | -; F16C-NEXT: vpextrw $0, %xmm0, %edx |
453 | | -; F16C-NEXT: vmovd %edx, %xmm0 |
454 | 436 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
455 | | -; F16C-NEXT: vmovd %ecx, %xmm1 |
456 | 437 | ; F16C-NEXT: vcvtph2ps %xmm1, %xmm1 |
457 | | -; F16C-NEXT: vmovd %eax, %xmm2 |
458 | 438 | ; F16C-NEXT: vcvtph2ps %xmm2, %xmm2 |
459 | 439 | ; F16C-NEXT: callq fmaf@PLT |
460 | 440 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -542,8 +522,6 @@ define void @test_half_fma(half %a0, half %a1, half %a2, ptr %p0) nounwind { |
542 | 522 | define void @test_half_fneg(half %a0, ptr %p0) nounwind { |
543 | 523 | ; F16C-LABEL: test_half_fneg: |
544 | 524 | ; F16C: # %bb.0: |
545 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
546 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
547 | 525 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
548 | 526 | ; F16C-NEXT: vxorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0 |
549 | 527 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -587,8 +565,6 @@ define void @test_half_log(half %a0, ptr %p0) nounwind { |
587 | 565 | ; F16C: # %bb.0: |
588 | 566 | ; F16C-NEXT: pushq %rbx |
589 | 567 | ; F16C-NEXT: movq %rdi, %rbx |
590 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
591 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
592 | 568 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
593 | 569 | ; F16C-NEXT: callq logf@PLT |
594 | 570 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -648,8 +624,6 @@ define void @test_half_log2(half %a0, ptr %p0) nounwind { |
648 | 624 | ; F16C: # %bb.0: |
649 | 625 | ; F16C-NEXT: pushq %rbx |
650 | 626 | ; F16C-NEXT: movq %rdi, %rbx |
651 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
652 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
653 | 627 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
654 | 628 | ; F16C-NEXT: callq log2f@PLT |
655 | 629 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -709,8 +683,6 @@ define void @test_half_log10(half %a0, ptr %p0) nounwind { |
709 | 683 | ; F16C: # %bb.0: |
710 | 684 | ; F16C-NEXT: pushq %rbx |
711 | 685 | ; F16C-NEXT: movq %rdi, %rbx |
712 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
713 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
714 | 686 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
715 | 687 | ; F16C-NEXT: callq log10f@PLT |
716 | 688 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -768,8 +740,6 @@ define void @test_half_log10(half %a0, ptr %p0) nounwind { |
768 | 740 | define void @test_half_nearbyint(half %a0, ptr %p0) nounwind { |
769 | 741 | ; F16C-LABEL: test_half_nearbyint: |
770 | 742 | ; F16C: # %bb.0: |
771 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
772 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
773 | 743 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
774 | 744 | ; F16C-NEXT: vroundss $12, %xmm0, %xmm0, %xmm0 |
775 | 745 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -823,11 +793,7 @@ define void @test_half_pow(half %a0, half %a1, ptr %p0) nounwind { |
823 | 793 | ; F16C: # %bb.0: |
824 | 794 | ; F16C-NEXT: pushq %rbx |
825 | 795 | ; F16C-NEXT: movq %rdi, %rbx |
826 | | -; F16C-NEXT: vpextrw $0, %xmm1, %eax |
827 | | -; F16C-NEXT: vpextrw $0, %xmm0, %ecx |
828 | | -; F16C-NEXT: vmovd %ecx, %xmm0 |
829 | 796 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
830 | | -; F16C-NEXT: vmovd %eax, %xmm1 |
831 | 797 | ; F16C-NEXT: vcvtph2ps %xmm1, %xmm1 |
832 | 798 | ; F16C-NEXT: callq powf@PLT |
833 | 799 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -907,8 +873,6 @@ define void @test_half_powi(half %a0, i32 %a1, ptr %p0) nounwind { |
907 | 873 | ; F16C: # %bb.0: |
908 | 874 | ; F16C-NEXT: pushq %rbx |
909 | 875 | ; F16C-NEXT: movq %rsi, %rbx |
910 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
911 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
912 | 876 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
913 | 877 | ; F16C-NEXT: callq __powisf2@PLT |
914 | 878 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -976,8 +940,6 @@ define void @test_half_powi(half %a0, i32 %a1, ptr %p0) nounwind { |
976 | 940 | define void @test_half_rint(half %a0, ptr %p0) nounwind { |
977 | 941 | ; F16C-LABEL: test_half_rint: |
978 | 942 | ; F16C: # %bb.0: |
979 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
980 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
981 | 943 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
982 | 944 | ; F16C-NEXT: vroundss $4, %xmm0, %xmm0, %xmm0 |
983 | 945 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -1031,8 +993,6 @@ define void @test_half_sin(half %a0, ptr %p0) nounwind { |
1031 | 993 | ; F16C: # %bb.0: |
1032 | 994 | ; F16C-NEXT: pushq %rbx |
1033 | 995 | ; F16C-NEXT: movq %rdi, %rbx |
1034 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
1035 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
1036 | 996 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
1037 | 997 | ; F16C-NEXT: callq sinf@PLT |
1038 | 998 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -1090,8 +1050,6 @@ define void @test_half_sin(half %a0, ptr %p0) nounwind { |
1090 | 1050 | define void @test_half_sqrt(half %a0, ptr %p0) nounwind { |
1091 | 1051 | ; F16C-LABEL: test_half_sqrt: |
1092 | 1052 | ; F16C: # %bb.0: |
1093 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
1094 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
1095 | 1053 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
1096 | 1054 | ; F16C-NEXT: vsqrtss %xmm0, %xmm0, %xmm0 |
1097 | 1055 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -1146,8 +1104,6 @@ define void @test_half_tan(half %a0, ptr %p0) nounwind { |
1146 | 1104 | ; F16C: # %bb.0: |
1147 | 1105 | ; F16C-NEXT: pushq %rbx |
1148 | 1106 | ; F16C-NEXT: movq %rdi, %rbx |
1149 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
1150 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
1151 | 1107 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
1152 | 1108 | ; F16C-NEXT: callq tanf@PLT |
1153 | 1109 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
@@ -1205,8 +1161,6 @@ define void @test_half_tan(half %a0, ptr %p0) nounwind { |
1205 | 1161 | define void @test_half_trunc(half %a0, ptr %p0) nounwind { |
1206 | 1162 | ; F16C-LABEL: test_half_trunc: |
1207 | 1163 | ; F16C: # %bb.0: |
1208 | | -; F16C-NEXT: vpextrw $0, %xmm0, %eax |
1209 | | -; F16C-NEXT: vmovd %eax, %xmm0 |
1210 | 1164 | ; F16C-NEXT: vcvtph2ps %xmm0, %xmm0 |
1211 | 1165 | ; F16C-NEXT: vroundss $11, %xmm0, %xmm0, %xmm0 |
1212 | 1166 | ; F16C-NEXT: vcvtps2ph $4, %xmm0, %xmm0 |
|
0 commit comments