Commit 3bd006f
authored
JIT: Accelerate uint->floating casts on pre-AVX-512 x86 (#124114)
This is another one peeled from #116805 (only one more to go after this
😄)
It takes care of uint->floating casts without a helper call on
pre-AVX-512 x86. Since baseline x86 is the only platform without native
instructions for all 32-bit conversions, adding this allows some more
simplification in `fgMorphExpandCast`
Typical diff:
```diff
- push eax
- vzeroupper
- push 0
- push ecx
- call [CORINFO_HELP_LNG2FLT]
- fstp dword ptr [esp]
- vmovss xmm0, dword ptr [esp]
+ vxorps xmm0, xmm0, xmm0
+ vcvtsi2sd xmm0, xmm0, ecx
+ vaddsd xmm1, xmm0, qword ptr [reloc @rwd00]
+ vblendvpd xmm0, xmm0, xmm1, xmm0
+ vcvtpd2ps xmm0, xmm0
vmovd eax, xmm0
- pop ecx
ret
+RWD00 dq 41F0000000000000h
-; Total bytes of code 27
+; Total bytes of code 31
```1 parent 6bd4752 commit 3bd006f
File tree
6 files changed
+197
-142
lines changed- src/coreclr/jit
6 files changed
+197
-142
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6229 | 6229 | | |
6230 | 6230 | | |
6231 | 6231 | | |
| 6232 | + | |
6232 | 6233 | | |
6233 | 6234 | | |
6234 | 6235 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
| 141 | + | |
| 142 | + | |
141 | 143 | | |
142 | 144 | | |
143 | 145 | | |
| |||
159 | 161 | | |
160 | 162 | | |
161 | 163 | | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
162 | 167 | | |
163 | 168 | | |
164 | 169 | | |
| |||
589 | 594 | | |
590 | 595 | | |
591 | 596 | | |
592 | | - | |
593 | | - | |
594 | | - | |
595 | | - | |
596 | | - | |
| 597 | + | |
| 598 | + | |
597 | 599 | | |
598 | 600 | | |
599 | 601 | | |
600 | 602 | | |
601 | 603 | | |
602 | 604 | | |
603 | | - | |
604 | | - | |
605 | | - | |
606 | | - | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
607 | 608 | | |
608 | 609 | | |
609 | 610 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1269 | 1269 | | |
1270 | 1270 | | |
1271 | 1271 | | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
1272 | 1310 | | |
1273 | 1311 | | |
1274 | 1312 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8127 | 8127 | | |
8128 | 8128 | | |
8129 | 8129 | | |
8130 | | - | |
8131 | | - | |
8132 | | - | |
8133 | | - | |
8134 | | - | |
8135 | | - | |
8136 | | - | |
8137 | | - | |
8138 | | - | |
8139 | | - | |
8140 | | - | |
8141 | | - | |
8142 | | - | |
8143 | | - | |
8144 | | - | |
8145 | | - | |
8146 | | - | |
8147 | | - | |
8148 | | - | |
8149 | | - | |
8150 | | - | |
8151 | | - | |
| 8130 | + | |
| 8131 | + | |
8152 | 8132 | | |
8153 | 8133 | | |
8154 | 8134 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
827 | 827 | | |
828 | 828 | | |
829 | 829 | | |
830 | | - | |
| 830 | + | |
831 | 831 | | |
832 | 832 | | |
833 | 833 | | |
| |||
844 | 844 | | |
845 | 845 | | |
846 | 846 | | |
847 | | - | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
848 | 851 | | |
849 | | - | |
850 | | - | |
851 | | - | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
852 | 935 | | |
| 936 | + | |
853 | 937 | | |
854 | 938 | | |
855 | 939 | | |
| |||
0 commit comments