|
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