You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
1
(14) |
2
(12) |
3
(14) |
4
(12) |
5
(15) |
6
(12) |
7
(20) |
|
8
(10) |
9
(2) |
10
(8) |
11
(12) |
12
(20) |
13
(12) |
14
(15) |
|
15
(12) |
16
(17) |
17
(16) |
18
(10) |
19
(7) |
20
(7) |
21
(9) |
|
22
(4) |
23
(8) |
24
(4) |
25
|
26
(8) |
27
(5) |
28
(10) |
|
29
(6) |
30
(20) |
31
(9) |
|
|
|
|
|
From: <sv...@va...> - 2015-03-30 21:30:02
|
Author: philippe
Date: Mon Mar 30 22:29:54 2015
New Revision: 15053
Log:
Fix a typo
Modified:
trunk/NEWS
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Mon Mar 30 22:29:54 2015
@@ -22,7 +22,7 @@
* ==================== OTHER CHANGES ====================
* Address description logic (used by memcheck and helgrind)
- now describes addressed in anonymous segments, file mmap-ed
+ now describes addresses in anonymous segments, file mmap-ed
segments, shared memory segments and the brk data segment.
* Option --error-markers=<begin>,<end> can be used to mark
|
|
From: Philippe W. <phi...@sk...> - 2015-03-30 21:13:46
|
On Mon, 2015-03-30 at 13:00 -0700, Yan wrote: > Hey! Sorry about the laggy response; I was traveling yesterday :-( > > > For UCSB's purposes, option 2 works ok! If I understand it correctly, > it's basically exactly what happens currently, right? Option 2.5 is > fine for us as well. Option 1 and option 2 are effectively mostly similar (just need to tweak configure to have option 2). When VEXMULTIARCH is defined, then main_main.c is compiled similarly to the current trunk. As you can see in the patch, the changes are trivial. Option 2.5 implies some changes to Makefile.am (not completely trivial changes, at least for someone like me that knows close to 0 about automake/conf magic) An advantage of option 2.5 is that main_main.c will always be compiled in both VEXMULTIARCH and single arch mode, to help catching an unlikely compilation bug in VEXMULTIARCH not detected otherwise. A user that needs multi arch can then have it just by giving 2 libs to link (in the good order) : libvexmultiarch-x86-linux.a libvex-x86-linux.a where the first lib only contains main_main.c compiled with VEXMULTIARCH defined. The 2nd lib contains main_main.c compiled in single arch, and all the other VEX object files, and is the one to use by default. Philippe |
|
From: Yan <ya...@ya...> - 2015-03-30 20:01:32
|
Hey! Sorry about the laggy response; I was traveling yesterday :-( For UCSB's purposes, option 2 works ok! If I understand it correctly, it's basically exactly what happens currently, right? Option 2.5 is fine for us as well. - Yan On Mon, Mar 30, 2015 at 12:15 PM, Philippe Waroquiers < phi...@sk...> wrote: > On Sun, 2015-03-29 at 23:20 +0200, Philippe Waroquiers wrote: > > I just finished implementing option 1. > > Find attached the patch for option 1. > It has been compiled/validated on x86/amd64/ppc32/ppc64/s390. > Changes for arm/arm64/mips32/mips64 are done but uncompiled/untested > (I am reasonably confident it will work, as the changes are > very mechanical). > > Some more comments ? > > Any feedback about option 2.5 ? > (i.e. have an additional .o 'multi_arch_main_main.o' always built) ? > > Philippe > > |
|
From: Julian S. <js...@ac...> - 2015-03-30 19:17:46
|
On 30/03/15 15:28, Petar Jovanovic wrote: > You will want to add a change like this one as well: > [..] Petar, thanks for that. Committed, r15052. It didn't fail on arm64-linux for reasons I don't understand, but it did fail on amd64-linux. J |
|
From: Philippe W. <phi...@sk...> - 2015-03-30 19:14:51
|
On Sun, 2015-03-29 at 23:20 +0200, Philippe Waroquiers wrote: > I just finished implementing option 1. Find attached the patch for option 1. It has been compiled/validated on x86/amd64/ppc32/ppc64/s390. Changes for arm/arm64/mips32/mips64 are done but uncompiled/untested (I am reasonably confident it will work, as the changes are very mechanical). Some more comments ? Any feedback about option 2.5 ? (i.e. have an additional .o 'multi_arch_main_main.o' always built) ? Philippe |
|
From: <sv...@va...> - 2015-03-30 19:14:42
|
Author: sewardj
Date: Mon Mar 30 20:14:35 2015
New Revision: 15052
Log:
Un-break the build following vex r3110. Thanks to PetarJ for the fix.
Modified:
trunk/memcheck/tests/vbit-test/irops.c
Modified: trunk/memcheck/tests/vbit-test/irops.c
==============================================================================
--- trunk/memcheck/tests/vbit-test/irops.c (original)
+++ trunk/memcheck/tests/vbit-test/irops.c Mon Mar 30 20:14:35 2015
@@ -259,6 +259,12 @@
{ DEFOP(Iop_RecpExpF64, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RecpExpF32, UNDEF_UNKNOWN), },
+ /* ------------------ 16-bit scalar FP --------------------- */
+ { DEFOP(Iop_F16toF64, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F64toF16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F16toF32, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F32toF16, UNDEF_UNKNOWN), },
+
/* ------------------ 32-bit SIMD Integer ------------------ */
{ DEFOP(Iop_QAdd32S, UNDEF_UNKNOWN), },
{ DEFOP(Iop_QSub32S, UNDEF_UNKNOWN), },
|
|
From: <sv...@va...> - 2015-03-30 18:50:35
|
Author: sewardj
Date: Mon Mar 30 19:50:23 2015
New Revision: 15051
Log:
arm64: enable test cases for
FCVT{N,M,A,P,Z}{S,U} 2d_2d, 4s_4s, 2s_2s
Modified:
trunk/none/tests/arm64/fp_and_simd.c
trunk/none/tests/arm64/fp_and_simd.stdout.exp
Modified: trunk/none/tests/arm64/fp_and_simd.c
==============================================================================
--- trunk/none/tests/arm64/fp_and_simd.c (original)
+++ trunk/none/tests/arm64/fp_and_simd.c Mon Mar 30 19:50:23 2015
@@ -5058,12 +5058,12 @@
if (1) test_fcvtau_d_d(TyDF);
if (1) test_fcvtas_s_s(TySF);
if (1) test_fcvtau_s_s(TySF);
- if (0) test_fcvtas_2d_2d(TyDF);
- if (0) test_fcvtau_2d_2d(TyDF);
- if (0) test_fcvtas_4s_4s(TySF);
- if (0) test_fcvtau_4s_4s(TySF);
- if (0) test_fcvtas_2s_2s(TySF);
- if (0) test_fcvtau_2s_2s(TySF);
+ if (1) test_fcvtas_2d_2d(TyDF);
+ if (1) test_fcvtau_2d_2d(TyDF);
+ if (1) test_fcvtas_4s_4s(TySF);
+ if (1) test_fcvtau_4s_4s(TySF);
+ if (1) test_fcvtas_2s_2s(TySF);
+ if (1) test_fcvtau_2s_2s(TySF);
if (1) test_fcvtas_w_s(TySF);
if (1) test_fcvtau_w_s(TySF);
if (1) test_fcvtas_x_s(TySF);
@@ -5083,12 +5083,12 @@
if (1) test_fcvtmu_d_d(TyDF);
if (1) test_fcvtms_s_s(TySF);
if (1) test_fcvtmu_s_s(TySF);
- if (0) test_fcvtms_2d_2d(TyDF);
- if (0) test_fcvtmu_2d_2d(TyDF);
- if (0) test_fcvtms_4s_4s(TySF);
- if (0) test_fcvtmu_4s_4s(TySF);
- if (0) test_fcvtms_2s_2s(TySF);
- if (0) test_fcvtmu_2s_2s(TySF);
+ if (1) test_fcvtms_2d_2d(TyDF);
+ if (1) test_fcvtmu_2d_2d(TyDF);
+ if (1) test_fcvtms_4s_4s(TySF);
+ if (1) test_fcvtmu_4s_4s(TySF);
+ if (1) test_fcvtms_2s_2s(TySF);
+ if (1) test_fcvtmu_2s_2s(TySF);
if (1) test_fcvtms_w_s(TySF);
if (1) test_fcvtmu_w_s(TySF);
if (1) test_fcvtms_x_s(TySF);
@@ -5108,12 +5108,12 @@
if (1) test_fcvtnu_d_d(TyDF);
if (1) test_fcvtns_s_s(TySF);
if (1) test_fcvtnu_s_s(TySF);
- if (0) test_fcvtns_2d_2d(TyDF);
- if (0) test_fcvtnu_2d_2d(TyDF);
- if (0) test_fcvtns_4s_4s(TySF);
- if (0) test_fcvtnu_4s_4s(TySF);
- if (0) test_fcvtns_2s_2s(TySF);
- if (0) test_fcvtnu_2s_2s(TySF);
+ if (1) test_fcvtns_2d_2d(TyDF);
+ if (1) test_fcvtnu_2d_2d(TyDF);
+ if (1) test_fcvtns_4s_4s(TySF);
+ if (1) test_fcvtnu_4s_4s(TySF);
+ if (1) test_fcvtns_2s_2s(TySF);
+ if (1) test_fcvtnu_2s_2s(TySF);
if (1) test_fcvtns_w_s(TySF);
if (1) test_fcvtnu_w_s(TySF);
if (1) test_fcvtns_x_s(TySF);
@@ -5133,12 +5133,12 @@
if (1) test_fcvtpu_d_d(TyDF);
if (1) test_fcvtps_s_s(TySF);
if (1) test_fcvtpu_s_s(TySF);
- if (0) test_fcvtps_2d_2d(TyDF);
- if (0) test_fcvtpu_2d_2d(TyDF);
- if (0) test_fcvtps_4s_4s(TySF);
- if (0) test_fcvtpu_4s_4s(TySF);
- if (0) test_fcvtps_2s_2s(TySF);
- if (0) test_fcvtpu_2s_2s(TySF);
+ if (1) test_fcvtps_2d_2d(TyDF);
+ if (1) test_fcvtpu_2d_2d(TyDF);
+ if (1) test_fcvtps_4s_4s(TySF);
+ if (1) test_fcvtpu_4s_4s(TySF);
+ if (1) test_fcvtps_2s_2s(TySF);
+ if (1) test_fcvtpu_2s_2s(TySF);
if (1) test_fcvtps_w_s(TySF);
if (1) test_fcvtpu_w_s(TySF);
if (1) test_fcvtps_x_s(TySF);
@@ -5158,12 +5158,12 @@
if (1) test_fcvtzu_d_d(TyDF);
if (1) test_fcvtzs_s_s(TySF);
if (1) test_fcvtzu_s_s(TySF);
- if (0) test_fcvtzs_2d_2d(TyDF);
- if (0) test_fcvtzu_2d_2d(TyDF);
- if (0) test_fcvtzs_4s_4s(TySF);
- if (0) test_fcvtzu_4s_4s(TySF);
- if (0) test_fcvtzs_2s_2s(TySF);
- if (0) test_fcvtzu_2s_2s(TySF);
+ if (1) test_fcvtzs_2d_2d(TyDF);
+ if (1) test_fcvtzu_2d_2d(TyDF);
+ if (1) test_fcvtzs_4s_4s(TySF);
+ if (1) test_fcvtzu_4s_4s(TySF);
+ if (1) test_fcvtzs_2s_2s(TySF);
+ if (1) test_fcvtzu_2s_2s(TySF);
if (1) test_fcvtzs_w_s(TySF);
if (1) test_fcvtzu_w_s(TySF);
if (1) test_fcvtzs_x_s(TySF);
Modified: trunk/none/tests/arm64/fp_and_simd.stdout.exp
==============================================================================
--- trunk/none/tests/arm64/fp_and_simd.stdout.exp (original)
+++ trunk/none/tests/arm64/fp_and_simd.stdout.exp Mon Mar 30 19:50:23 2015
@@ -26690,1981 +26690,2011 @@
fcvtau d21, d10 831313bfc895537b98f57bc982af8640 01d77486fe17d17262ee15ec27590158 0000000000000000ffffffffffffffff 01d77486fe17d17262ee15ec27590158 fpsr=00000000
fcvtas s10, s21 f73e8accca8a479a3d45eb7749ba4afa eba1fd97c425e23b3247059f18557fac 00000000000000000000000000000000 eba1fd97c425e23b3247059f18557fac fpsr=00000000
fcvtau s21, s10 87baeea0e27412d2520b7c6f3b9dda11 c9f48be8f9df62144a4d2d158be16055 00000000000000000000000000000000 c9f48be8f9df62144a4d2d158be16055 fpsr=00000000
-fcvtas w21, s10 9469a01a7032150338278f92b7389464 fbb27f57fc24b2de0be1ef2ee1dd0533 9469a01a7032150338278f92b7389464 e2bfbd10f8c225940000000000000000 fpsr=00000000
-fcvtau w21, s10 7c29ff1bd5a3b00d4e7883c11e6adad5 e2ba39c52dd63179d4e3abca7929cd26 7c29ff1bd5a3b00d4e7883c11e6adad5 673f7db2453da00b0000000000000000 fpsr=00000000
-fcvtas x21, s10 a2db6b8470a941cff4e0b9dacf150c42 deeb1712edd340c50633bfc9b4a4180d a2db6b8470a941cff4e0b9dacf150c42 b15a9322d074db23ffffffff6af3be00 fpsr=00000000
-fcvtau x21, s10 635f4533a2222a2b8b3d8fbe2a17898c 4d277b1e9bfc3da200b18e0bf13047ca 635f4533a2222a2b8b3d8fbe2a17898c 1fee5d41f94734bd0000000000000000 fpsr=00000000
-fcvtas w21, d10 2194ec09c9efcbff7271684d9052b194 914cc5c897318bf0223d756f91abb93b 2194ec09c9efcbff7271684d9052b194 11dc3eef21960db7000000007fffffff fpsr=00000000
-fcvtau w21, d10 3b5cc0e548f0832d0a5aa16660a4e538 0a3b54f24252878eccb7d6d7f2f6cf41 3b5cc0e548f0832d0a5aa16660a4e538 e704930ca741c5f20000000000000000 fpsr=00000000
-fcvtas x21, d10 129622a97c05b293b2d99cebfbee8458 16d4887afb3f935e5ffe102176f2e8bc 129622a97c05b293b2d99cebfbee8458 0246be78eb28bd4e0000000000000000 fpsr=00000000
-fcvtau x21, d10 05217134c70db812caceb8bac010eed6 17f7c14223d80f3e3bf4842e7d7d648c 05217134c70db812caceb8bac010eed6 74de0e6589eaf68a0000000000000000 fpsr=00000000
-fcvtms d10, d21 6d84602819fc5a0fbe7791de6677a391 a9f6775224aec8b94364f35899c27d9b 000000000000000000a79ac4ce13ecd8 a9f6775224aec8b94364f35899c27d9b fpsr=00000000
-fcvtmu d21, d10 775ac50d3d8dd4b14b68971191c206ab 27a23c022b2ccd6b38d407974c1348f5 00000000000000000000000000000000 27a23c022b2ccd6b38d407974c1348f5 fpsr=00000000
-fcvtms s10, s21 955b4ed1f069dd043fa7f7a75f3dedb9 91b03e0918aef9c56ec98cb0f94d2e3c 00000000000000000000000080000000 91b03e0918aef9c56ec98cb0f94d2e3c fpsr=00000000
-fcvtmu s21, s10 28655d549171d6e8fc1410802fc7b69d abb435d389cc6aa693e2005b46d80f74 00000000000000000000000000006c07 abb435d389cc6aa693e2005b46d80f74 fpsr=00000000
-fcvtms w21, s10 ab717a9b253f48f41ac66af4c2f8cd10 40f14078237abe27d137e39cad5f21db ab717a9b253f48f41ac66af4c2f8cd10 2a188c161e8516e200000000ffffff83 fpsr=00000000
-fcvtmu w21, s10 1be574e6060d2b88518d84de9f29455d ba68c18c1c84f2e947eb70d0872508c7 1be574e6060d2b88518d84de9f29455d 5a806b15ca511db90000000000000000 fpsr=00000000
-fcvtms x21, s10 f63a2c084d5eb546485a8e23f5c25917 78f916eed4ca64cc55dc06d7330b2117 f63a2c084d5eb546485a8e23f5c25917 7e714f53e5c994a08000000000000000 fpsr=00000000
-fcvtmu x21, s10 9f5201e15a14460d5f0deaa327a3681f da84a280a92b77b05bec059012f1cead 9f5201e15a14460d5f0deaa327a3681f 730b53518d0e3ebc0000000000000000 fpsr=00000000
-fcvtms w21, d10 41e9c221fd898874baf9cedd83b66e67 1caa09d8034ac0e161327f6b0c454834 41e9c221fd898874baf9cedd83b66e67 d4468238472bfe3400000000ffffffff fpsr=00000000
-fcvtmu w21, d10 0c07d8b030c2f9fad2e4c09ce73c6226 077a4bae058dc7320df8ca32636e2f6f 0c07d8b030c2f9fad2e4c09ce73c6226 22e3f075e84ce6550000000000000000 fpsr=00000000
-fcvtms x21, d10 9bc0440fa1b72920018d3bae9d6209ca 8f1cfbcb9c44261baab3b7c464ee6287 9bc0440fa1b72920018d3bae9d6209ca bbc2faeace5155ff0000000000000000 fpsr=00000000
-fcvtmu x21, d10 4ff2641cb04979c8a9d4a0f40507c333 1370780f2a4f3d7e9744a50170a7405c 4ff2641cb04979c8a9d4a0f40507c333 01c202755b1aab120000000000000000 fpsr=00000000
-fcvtns d10, d21 877e9ab8be5648d02a984e4c7f0cf141 f356235a0e8e6b39358bf5c9e6772ace 00000000000000000000000000000000 f356235a0e8e6b39358bf5c9e6772ace fpsr=00000000
-fcvtnu d21, d10 a44446c32abef619e2bba6966c51f2d3 90ad5a8ba9e1102de36806fb273f7fbd 00000000000000000000000000000000 90ad5a8ba9e1102de36806fb273f7fbd fpsr=00000000
-fcvtns s10, s21 0524c71d5463e483341b07b42cb627cb 495680845a288c3a01bb387992df9f09 00000000000000000000000000000000 495680845a288c3a01bb387992df9f09 fpsr=00000000
-fcvtnu s21, s10 0afe7da69d2471ed7d9ad1851d1bef07 7e32f22381434040f064ec218737eb91 00000000000000000000000000000000 7e32f22381434040f064ec218737eb91 fpsr=00000000
-fcvtns w21, s10 14b2c93d64e0fd391f1665e8a160aa68 901f124a7f118c1f0f4381d46626c237 14b2c93d64e0fd391f1665e8a160aa68 821f0ac40979e9450000000000000000 fpsr=00000000
-fcvtnu w21, s10 defe40d7b373ceb7be375772918e85d9 4da2c476be7da12afaf66e8b7c551eba defe40d7b373ceb7be375772918e85d9 b427a019edcd94f30000000000000000 fpsr=00000000
-fcvtns x21, s10 c9afdaab7d4a68e75e22cfdb654e9358 254a29e74543901c3c411d9272dd1deb c9afdaab7d4a68e75e22cfdb654e9358 0ba8ec1d70bd5f217fffffffffffffff fpsr=00000000
-fcvtnu x21, s10 b01242a63e74ba914ee248ef44454c95 d2dc74f71a16ce7ea89ae6bbca5660d1 b01242a63e74ba914ee248ef44454c95 e6834db0f029a9b00000000000000315 fpsr=00000000
-fcvtns w21, d10 f306d8a855d22393ee58238e8d54116d b43803869ed3bc329be028e8e59e474c f306d8a855d22393ee58238e8d54116d a69823b2cff1d2800000000080000000 fpsr=00000000
-fcvtnu w21, d10 f36dfb90234303ce9f64bf98a05b41c3 293e3973305db91677f543f72296313d f36dfb90234303ce9f64bf98a05b41c3 aac7cf036df53b710000000000000000 fpsr=00000000
-fcvtns x21, d10 0f250b4007a9ba23c0e67cecde3a3c76 94ce739f3193250c9cb798c9e21e7e81 0f250b4007a9ba23c0e67cecde3a3c76 52f0b18328144363ffffffffffff4c19 fpsr=00000000
-fcvtnu x21, d10 a70f689661e3a970b2beba6ba7d16366 509d127629b5b369a73008314d68046a a70f689661e3a970b2beba6ba7d16366 c50c7834fd82cca90000000000000000 fpsr=00000000
-fcvtps d10, d21 77f618cb4910e97025ad3d75f9f6e079 10af938f7b27b1c93974dc99e185e8af 00000000000000000000000000000001 10af938f7b27b1c93974dc99e185e8af fpsr=00000000
-fcvtpu d21, d10 8ab15b774f70471fe4afe3939f6dd875 e50654dbd2dad8fdeffbeed9bda9c5a1 00000000000000000000000000000000 e50654dbd2dad8fdeffbeed9bda9c5a1 fpsr=00000000
-fcvtps s10, s21 eaae3b599cb32c5743185b6d9fab4a3e dfd6cbd7c72a1db21d20e84d4b4cb558 00000000000000000000000000ccb558 dfd6cbd7c72a1db21d20e84d4b4cb558 fpsr=00000000
-fcvtpu s21, s10 f6cd19538fbaf8f8a2c603e15a9198b3 5e005761bbf5e2c923c32dd3ec5019b4 00000000000000000000000000000000 5e005761bbf5e2c923c32dd3ec5019b4 fpsr=00000000
-fcvtps w21, s10 0fed544388650be1629a3ed0300021b6 c064595a0d1b872062c31a4bfe935094 0fed544388650be1629a3ed0300021b6 b5522436c757ca190000000000000001 fpsr=00000000
-fcvtpu w21, s10 67e230a21d7e6a9739021197e4f6bbda ed6ceeb44c22c04398891817c38eb11b 67e230a21d7e6a9739021197e4f6bbda e5b463880e2688100000000000000000 fpsr=00000000
-fcvtps x21, s10 b25a3c184cfded10095e7196fb59b964 e86537c2d97bead78d90e16e5f64b272 b25a3c184cfded10095e7196fb59b964 631bf69d5bfdb2148000000000000000 fpsr=00000000
-fcvtpu x21, s10 02acde9ef977706a31b89b27a69baa14 c0702d563d88ac44b2cd8ccfe4d140e5 02acde9ef977706a31b89b27a69baa14 6c0367292df7a3e10000000000000000 fpsr=00000000
+fcvtas v10.2d, v21.2d 9469a01a7032150338278f92b7389464 fbb27f57fc24b2de0be1ef2ee1dd0533 80000000000000000000000000000000 fbb27f57fc24b2de0be1ef2ee1dd0533 fpsr=00000000
+fcvtau v10.2d, v21.2d 7c29ff1bd5a3b00d4e7883c11e6adad5 e2ba39c52dd63179d4e3abca7929cd26 00000000000000000000000000000000 e2ba39c52dd63179d4e3abca7929cd26 fpsr=00000000
+fcvtas v10.4s, v21.4s a2db6b8470a941cff4e0b9dacf150c42 deeb1712edd340c50633bfc9b4a4180d 80000000800000000000000000000000 deeb1712edd340c50633bfc9b4a4180d fpsr=00000000
+fcvtau v10.4s, v21.4s 635f4533a2222a2b8b3d8fbe2a17898c 4d277b1e9bfc3da200b18e0bf13047ca 0a77b1e0000000000000000000000000 4d277b1e9bfc3da200b18e0bf13047ca fpsr=00000000
+fcvtas v10.2s, v21.2s 2194ec09c9efcbff7271684d9052b194 914cc5c897318bf0223d756f91abb93b 00000000000000000000000000000000 914cc5c897318bf0223d756f91abb93b fpsr=00000000
+fcvtau v10.2s, v21.2s 3b5cc0e548f0832d0a5aa16660a4e538 0a3b54f24252878eccb7d6d7f2f6cf41 00000000000000000000000000000000 0a3b54f24252878eccb7d6d7f2f6cf41 fpsr=00000000
+fcvtas w21, s10 129622a97c05b293b2d99cebfbee8458 16d4887afb3f935e5ffe102176f2e8bc 129622a97c05b293b2d99cebfbee8458 0246be78eb28bd4e0000000080000000 fpsr=00000000
+fcvtau w21, s10 05217134c70db812caceb8bac010eed6 17f7c14223d80f3e3bf4842e7d7d648c 05217134c70db812caceb8bac010eed6 74de0e6589eaf68a0000000000000000 fpsr=00000000
+fcvtas x21, s10 6d84602819fc5a0fbe7791de6677a391 a9f6775224aec8b94364f35899c27d9b 6d84602819fc5a0fbe7791de6677a391 c0ad581d207accdb7fffffffffffffff fpsr=00000000
+fcvtau x21, s10 775ac50d3d8dd4b14b68971191c206ab 27a23c022b2ccd6b38d407974c1348f5 775ac50d3d8dd4b14b68971191c206ab 486eaf3dee9f98e50000000000000000 fpsr=00000000
+fcvtas w21, d10 955b4ed1f069dd043fa7f7a75f3dedb9 91b03e0918aef9c56ec98cb0f94d2e3c 955b4ed1f069dd043fa7f7a75f3dedb9 6d0174a35337bc870000000000000000 fpsr=00000000
+fcvtau w21, d10 28655d549171d6e8fc1410802fc7b69d abb435d389cc6aa693e2005b46d80f74 28655d549171d6e8fc1410802fc7b69d 8f59527580861e3d0000000000000000 fpsr=00000000
+fcvtas x21, d10 ab717a9b253f48f41ac66af4c2f8cd10 40f14078237abe27d137e39cad5f21db ab717a9b253f48f41ac66af4c2f8cd10 2a188c161e8516e20000000000000000 fpsr=00000000
+fcvtau x21, d10 1be574e6060d2b88518d84de9f29455d ba68c18c1c84f2e947eb70d0872508c7 1be574e6060d2b88518d84de9f29455d 5a806b15ca511db9ffffffffffffffff fpsr=00000000
+fcvtms d10, d21 f63a2c084d5eb546485a8e23f5c25917 78f916eed4ca64cc55dc06d7330b2117 00000000000000007fffffffffffffff 78f916eed4ca64cc55dc06d7330b2117 fpsr=00000000
+fcvtmu d21, d10 9f5201e15a14460d5f0deaa327a3681f da84a280a92b77b05bec059012f1cead 0000000000000000ffffffffffffffff da84a280a92b77b05bec059012f1cead fpsr=00000000
+fcvtms s10, s21 41e9c221fd898874baf9cedd83b66e67 1caa09d8034ac0e161327f6b0c454834 00000000000000000000000000000000 1caa09d8034ac0e161327f6b0c454834 fpsr=00000000
+fcvtmu s21, s10 0c07d8b030c2f9fad2e4c09ce73c6226 077a4bae058dc7320df8ca32636e2f6f 000000000000000000000000ffffffff 077a4bae058dc7320df8ca32636e2f6f fpsr=00000000
+fcvtms v10.2d, v21.2d 9bc0440fa1b72920018d3bae9d6209ca 8f1cfbcb9c44261baab3b7c464ee6287 ffffffffffffffffffffffffffffffff 8f1cfbcb9c44261baab3b7c464ee6287 fpsr=00000000
+fcvtmu v10.2d, v21.2d 4ff2641cb04979c8a9d4a0f40507c333 1370780f2a4f3d7e9744a50170a7405c 00000000000000000000000000000000 1370780f2a4f3d7e9744a50170a7405c fpsr=00000000
+fcvtms v10.4s, v21.4s 877e9ab8be5648d02a984e4c7f0cf141 f356235a0e8e6b39358bf5c9e6772ace 80000000000000000000000080000000 f356235a0e8e6b39358bf5c9e6772ace fpsr=00000000
+fcvtmu v10.4s, v21.4s a44446c32abef619e2bba6966c51f2d3 90ad5a8ba9e1102de36806fb273f7fbd 00000000000000000000000000000000 90ad5a8ba9e1102de36806fb273f7fbd fpsr=00000000
+fcvtms v10.2s, v21.2s 0524c71d5463e483341b07b42cb627cb 495680845a288c3a01bb387992df9f09 000000000000000000000000ffffffff 495680845a288c3a01bb387992df9f09 fpsr=00000000
+fcvtmu v10.2s, v21.2s 0afe7da69d2471ed7d9ad1851d1bef07 7e32f22381434040f064ec218737eb91 00000000000000000000000000000000 7e32f22381434040f064ec218737eb91 fpsr=00000000
+fcvtms w21, s10 14b2c93d64e0fd391f1665e8a160aa68 901f124a7f118c1f0f4381d46626c237 14b2c93d64e0fd391f1665e8a160aa68 821f0ac40979e94500000000ffffffff fpsr=00000000
+fcvtmu w21, s10 defe40d7b373ceb7be375772918e85d9 4da2c476be7da12afaf66e8b7c551eba defe40d7b373ceb7be375772918e85d9 b427a019edcd94f30000000000000000 fpsr=00000000
+fcvtms x21, s10 c9afdaab7d4a68e75e22cfdb654e9358 254a29e74543901c3c411d9272dd1deb c9afdaab7d4a68e75e22cfdb654e9358 0ba8ec1d70bd5f217fffffffffffffff fpsr=00000000
+fcvtmu x21, s10 b01242a63e74ba914ee248ef44454c95 d2dc74f71a16ce7ea89ae6bbca5660d1 b01242a63e74ba914ee248ef44454c95 e6834db0f029a9b00000000000000315 fpsr=00000000
+fcvtms w21, d10 f306d8a855d22393ee58238e8d54116d b43803869ed3bc329be028e8e59e474c f306d8a855d22393ee58238e8d54116d a69823b2cff1d2800000000080000000 fpsr=00000000
+fcvtmu w21, d10 f36dfb90234303ce9f64bf98a05b41c3 293e3973305db91677f543f72296313d f36dfb90234303ce9f64bf98a05b41c3 aac7cf036df53b710000000000000000 fpsr=00000000
+fcvtms x21, d10 0f250b4007a9ba23c0e67cecde3a3c76 94ce739f3193250c9cb798c9e21e7e81 0f250b4007a9ba23c0e67cecde3a3c76 52f0b18328144363ffffffffffff4c18 fpsr=00000000
+fcvtmu x21, d10 a70f689661e3a970b2beba6ba7d16366 509d127629b5b369a73008314d68046a a70f689661e3a970b2beba6ba7d16366 c50c7834fd82cca90000000000000000 fpsr=00000000
+fcvtns d10, d21 77f618cb4910e97025ad3d75f9f6e079 10af938f7b27b1c93974dc99e185e8af 00000000000000000000000000000000 10af938f7b27b1c93974dc99e185e8af fpsr=00000000
+fcvtnu d21, d10 8ab15b774f70471fe4afe3939f6dd875 e50654dbd2dad8fdeffbeed9bda9c5a1 00000000000000000000000000000000 e50654dbd2dad8fdeffbeed9bda9c5a1 fpsr=00000000
+fcvtns s10, s21 eaae3b599cb32c5743185b6d9fab4a3e dfd6cbd7c72a1db21d20e84d4b4cb558 00000000000000000000000000ccb558 dfd6cbd7c72a1db21d20e84d4b4cb558 fpsr=00000000
+fcvtnu s21, s10 f6cd19538fbaf8f8a2c603e15a9198b3 5e005761bbf5e2c923c32dd3ec5019b4 00000000000000000000000000000000 5e005761bbf5e2c923c32dd3ec5019b4 fpsr=00000000
+fcvtns v10.2d, v21.2d 0fed544388650be1629a3ed0300021b6 c064595a0d1b872062c31a4bfe935094 ffffffffffffff5d7fffffffffffffff c064595a0d1b872062c31a4bfe935094 fpsr=00000000
+fcvtnu v10.2d, v21.2d 67e230a21d7e6a9739021197e4f6bbda ed6ceeb44c22c04398891817c38eb11b 00000000000000000000000000000000 ed6ceeb44c22c04398891817c38eb11b fpsr=00000000
+fcvtns v10.4s, v21.4s b25a3c184cfded10095e7196fb59b964 e86537c2d97bead78d90e16e5f64b272 8000000080000000000000007fffffff e86537c2d97bead78d90e16e5f64b272 fpsr=00000000
+fcvtnu v10.4s, v21.4s 02acde9ef977706a31b89b27a69baa14 c0702d563d88ac44b2cd8ccfe4d140e5 00000000000000000000000000000000 c0702d563d88ac44b2cd8ccfe4d140e5 fpsr=00000000
randV128: 1536 calls, 1585 iters
-fcvtps w21, d10 b6b7751284ce528411f0ee2c429eefc8 d46d3051d7286469671f791bb4b7b856 b6b7751284ce528411f0ee2c429eefc8 634d150be7f6bb570000000000000001 fpsr=00000000
-fcvtpu w21, d10 2f5d61564ee0f3400ae6cb833141e761 853ca193083c74280d6807322ff47ca3 2f5d61564ee0f3400ae6cb833141e761 a6d86025e6d85b560000000000000001 fpsr=00000000
-fcvtps x21, d10 cb7c0348b78eb37c7b7a910dd263f2bf 32bddffc2fa43c5f038696f4b36aebad cb7c0348b78eb37c7b7a910dd263f2bf 9586a9558c7ee2be7fffffffffffffff fpsr=00000000
-fcvtpu x21, d10 edf5bac91db8f319c48ca0aa86e571c1 3bd04a6cac401bf0a95a8640a3f76654 edf5bac91db8f319c48ca0aa86e571c1 90364f7c39c8b16f0000000000000000 fpsr=00000000
-fcvtzs d10, d21 f2a8e6b9e23e13f746fb583aaca7c349 015443c3dff071b960c438f85c7c4c78 00000000000000007fffffffffffffff 015443c3dff071b960c438f85c7c4c78 fpsr=00000000
-fcvtzu d21, d10 3c75e8f8660072f660a91a9da4894936 e32b29e029949e9b88a40bfb40d9fdf9 00000000000000000000000000000000 e32b29e029949e9b88a40bfb40d9fdf9 fpsr=00000000
-fcvtzs s10, s21 2b3c1f6607dd70f6727446b2cf6b6267 0da3ed0492bd484ca76be116e50263af 00000000000000000000000080000000 0da3ed0492bd484ca76be116e50263af fpsr=00000000
-fcvtzu s21, s10 c685a83c75a8aa1102075e3cef48cd8c 7a870d3eaad6358b3b95c4f6b910293f 00000000000000000000000000000000 7a870d3eaad6358b3b95c4f6b910293f fpsr=00000000
-fcvtzs w21, s10 94908953e7df9a87c5f135c59cbdbb5e 53602658167308c800f680c30605d609 94908953e7df9a87c5f135c59cbdbb5e 0737889bb1293e9c0000000000000000 fpsr=00000000
-fcvtzu w21, s10 d5a5ef2947437a8e5109c5914b438b04 797bdda8c9f4638e65bc0d4aacc1fe9f d5a5ef2947437a8e5109c5914b438b04 17c7b1bb0bb1411b0000000000c38b04 fpsr=00000000
-fcvtzs x21, s10 eba53b9ef5b2a905062f6f7f5cb8a05f 4bb79010223aa5bdcac8cc6c0d2502e3 eba53b9ef5b2a905062f6f7f5cb8a05f 83e807e2bb6b5bf205c502f800000000 fpsr=00000000
-fcvtzu x21, s10 366ecb91520d88ce4242917130fd5750 2af6a26e82222e3590fb1c0a881142b3 366ecb91520d88ce4242917130fd5750 ac7cebf0223aec020000000000000000 fpsr=00000000
-fcvtzs w21, d10 14e102e4bd3376c767248e4526f212b5 741670a3478f5fd516335e027e651cf1 14e102e4bd3376c767248e4526f212b5 f161bcc49ffd542b000000007fffffff fpsr=00000000
-fcvtzu w21, d10 e8de3d759706d3d2d4b3c3dc9f77306f 8cf95c8fd360977fbc50f1354e01f27b e8de3d759706d3d2d4b3c3dc9f77306f b279db409294f44d0000000000000000 fpsr=00000000
-fcvtzs x21, d10 0f44de253f6500cdead09216f96c125d cf7dc51286743711e334358259c52432 0f44de253f6500cdead09216f96c125d 50a2a7425cde2c488000000000000000 fpsr=00000000
-fcvtzu x21, d10 ebf544d4152f5c99085c5bd397b11761 9f830c0cbfad9e6deabe8bcbfe9111f6 ebf544d4152f5c99085c5bd397b11761 2abd80ab5cbc5afc0000000000000000 fpsr=00000000
-scvtf v10.2d, v21.2d dbd0d062794548168f357cf3d6269f5a 5ceb905ddee92c7132cd52ef9d4419a6 43d73ae41777ba4b43c966a977cea20d 5ceb905ddee92c7132cd52ef9d4419a6 fpsr=00000000
-ucvtf v10.2d, v21.2d 40b4e1afcd882324de3b585618aa0b27 6495b1e4440942fe1a43ebcd96c09c24 43d9256c7911025143ba43ebcd96c09c 6495b1e4440942fe1a43ebcd96c09c24 fpsr=00000000
-scvtf v10.4s, v21.4s 1a61d08250ed3ff402feb4464ae3fb4f 534787c2aa279e624e868e8182f8a985 4ea68f10ceabb0c34e9d0d1dcefa0ead 534787c2aa279e624e868e8182f8a985 fpsr=00000000
-ucvtf v10.4s, v21.4s db2e4c18627584334bdf103a198e9606 9f9809a0556bb34e55d3dc3fceb9315a 4f1f980a4eaad7674eaba7b84f4eb931 9f9809a0556bb34e55d3dc3fceb9315a fpsr=00000000
-scvtf v10.2s, v21.2s 09de8684db81709a54c65c8962a1cb2a 2f0361cdbeeb085bf65f34d0ec99ec95 0000000000000000cd1a0cb3cd9b309b 2f0361cdbeeb085bf65f34d0ec99ec95 fpsr=00000000
-ucvtf v10.2s, v21.2s 034fdda71af1630b7d93fa1385fcfd9b 6368ee284686fc688e08f6133d793b14 00000000000000004f0e08f64e75e4ec 6368ee284686fc688e08f6133d793b14 fpsr=00000000
-scvtf s7, w15, #1 2a62b16180a4be6427254ab8e27f893a 3c6e684ccf7d309eda9fb2ab1515d08f 0000000000000000000000004d28ae84 ddf763926c7ce086da9fb2ab1515d08f fpsr=00000000
-scvtf s7, w15, #16 399f29ed3191420728343433f5b81361 79982d6c027b9999997f3f7c5eb8d935 00000000000000000000000046bd71b2 7cee52193e572952997f3f7c5eb8d935 fpsr=00000000
-scvtf s7, w15, #32 9a31961554c15557ea7772cf1dd75cef 52945ed4cbec5a2c47546e1851b32eb7 0000000000000000000000003ea3665d 6827ded85716faa647546e1851b32eb7 fpsr=00000000
-scvtf d7, w15, #1 203eb9ec158c86282458999ff777b942 28425d628bb1d33947ff9e5e4fe52ef6 000000000000000041c3f94bbd800000 2aa4f152d5d3375a47ff9e5e4fe52ef6 fpsr=00000000
-scvtf d7, w15, #16 5b828af6a1aa639ef6603030b72f3ad2 a4de4f79dbc0b1681e3b5b234103c291 000000000000000040d040f0a4400000 493344726eb76a3c1e3b5b234103c291 fpsr=00000000
-scvtf d7, w15, #32 d4503f7113ef82552a9bcd11cbb38b1d b51df41c076b5897aad1b3c9ddd5539c 0000000000000000bfc1155632000000 5437ebb551b848f4aad1b3c9ddd5539c fpsr=00000000
-scvtf s7, x15, #1 edebd1f1d380d56d1d0898d66a36df25 931db576f97906ce564d5caa53efdff4 0000000000000000000000005e2c9ab9 dc6cdf9eaa8c5ea3564d5caa53efdff4 fpsr=00000000
-scvtf s7, x15, #32 5aefc88f609df877b904fd3eeb29f662 9cbff56711cc1cef838fb6a60331c679 000000000000000000000000cef8e093 40b3810eda150c2c838fb6a60331c679 fpsr=00000000
-scvtf s7, x15, #64 7c3e842c1d254a515d6d5c29ae6b31b3 32e311cfb042f9d89076229d4e7b690b 000000000000000000000000bedf13bb e0ec31e64031b06e9076229d4e7b690b fpsr=00000000
-scvtf d7, x15, #1 b3b766a867f92bdc6924147714def0fa b5696b8e36bdfd6adee4ff6e94ac278a 0000000000000000c3b08d8048b5a9ec 1cf74d043dc1ac49dee4ff6e94ac278a fpsr=00000000
-scvtf d7, x15, #32 5d39cde3a1fafcf73e0985087c609215 83316383011b8985ccb7adfa33a661d6 0000000000000000c1c9a42902e62ccf 55b438492fa5609cccb7adfa33a661d6 fpsr=00000000
-scvtf d7, x15, #64 dca519bc28061d843bfb0fbb46d377e6 fe1b5890733dfc09bad18d228d4776ce 0000000000000000bfd14b9cb75cae22 eb034f9479bd2b48bad18d228d4776ce fpsr=00000000
-ucvtf s7, w15, #1 90dbab155efeec62c1dc1372d315ff4b 8607aa93ec03b7d60910fec40270c654 0000000000000000000000004b9c3195 3cc3f4c778e96d2e0910fec40270c654 fpsr=00000000
-ucvtf s7, w15, #16 d7bbe2cca2c1cb702f8bf00b82078b25 7ad4b96dca4d19cc185561c1f001b246 000000000000000000000000477001b2 aad586c18e09862c185561c1f001b246 fpsr=00000000
-ucvtf s7, w15, #32 14251fc255311a8fe5e70767b3897a54 3a63e6fe70fa82ca477f15f9b9da9985 0000000000000000000000003f39da9a 951a66611bfcd723477f15f9b9da9985 fpsr=00000000
-ucvtf d7, w15, #1 a4f9c1d8d52d37a044d1b766c77b2db8 279590263bec53b1f7707a4cbddbdbf1 000000000000000041d7bb7b7e200000 5c70f3897da4c0f2f7707a4cbddbdbf1 fpsr=00000000
-ucvtf d7, w15, #16 e91628ec85948581ab2960e81ebc0330 a04818c58d01eb628807f1995be4d96a 000000000000000040d6f9365a800000 5fb88d1716df9f7b8807f1995be4d96a fpsr=00000000
-ucvtf d7, w15, #32 425eb5dfc24761137bcf63cd162e5c9e 055dddbac51aaabb5823d9c2f3d4f2d0 00000000000000003fee7a9e5a000000 fed295ec468fd69d5823d9c2f3d4f2d0 fpsr=00000000
-ucvtf s7, x15, #1 10afc790ee272d3512a31ff511af99e0 b7b33fe74418f19dc9a693a5e68d8703 0000000000000000000000005ec9a694 9a9e6ae86c92c537c9a693a5e68d8703 fpsr=00000000
-ucvtf s7, x15, #32 b2ebbee1691248c9d385f53f6f2119d8 152c9f2a69d91fe83a6e7d2393edf7e2 0000000000000000000000004e69b9f5 93fb6cebe8c9cb2b3a6e7d2393edf7e2 fpsr=00000000
-ucvtf s7, x15, #64 88f0fbb192e913ae1b55448d8e623d64 5504d25ef6737874211cb7aaf597aa18 0000000000000000000000003e0472df f39fdddfc98cedc3211cb7aaf597aa18 fpsr=00000000
-ucvtf d7, x15, #1 5603d7762626b1389e5067719c25e928 ce5caa70b80f3e168af470804cf4b647 000000000000000043d15e8e10099e97 52d8c54c6eda36e98af470804cf4b647 fpsr=00000000
-ucvtf d7, x15, #32 f9226f3e7e73d5fe512a2600b8bd2b4e ebaeb9b199c8a3b9ebea9209d65056bc 000000000000000041ed7d52413aca0b 067a12d8e2b54f00ebea9209d65056bc fpsr=00000000
-ucvtf d7, x15, #64 c9e2849dfd0461ac83ca97a90e7dc8a1 0dd95c00f87c073ca5df7e24f28de955 00000000000000003fe4bbefc49e51bd 6e67246485fb97e9a5df7e24f28de955 fpsr=00000000
-scvtf s7, w15 2524777202b8b423970f184eff452101 93bff53f350dcb8118b193b3018ad0f3 0000000000000000000000004bc5687a ea7d5ccdb58e6f8118b193b3018ad0f3 fpsr=00000000
-scvtf d7, w15 6dc8a79fed702e44eadb0bceeaf4954e de3ee44cb1594e66a241319461266a76 000000000000000041d8499a9d800000 02ae74031f0c30eda241319461266a76 fpsr=00000000
-scvtf s7, x15 4c388708cb41f1cca56eb9a8754317be f7fff43f4076020a62b1bf4143180937 0000000000000000000000005ec5637f 43b53f7df76c19fe62b1bf4143180937 fpsr=00000000
-scvtf d7, x15 408b4153e4a51394811a8acf9abf38ab 526ce1f9efcc43451b9ff198241fa648 000000000000000043bb9ff198241fa6 91bf67eed5704a591b9ff198241fa648 fpsr=00000000
-ucvtf s7, w15 17186f0d5b65149c952405e9327b2c1c 6a4a5c995536fbb8e423e55acf1eaed6 0000000000000000000000004f4f1eaf 4baa4d361af822dde423e55acf1eaed6 fpsr=00000000
-ucvtf d7, w15 33bf7316906155c4416b89d69d5754f3 9e7bc401d1938a441d1dfa66a5f581c1 000000000000000041e4beb038200000 d158503525e401691d1dfa66a5f581c1 fpsr=00000000
-ucvtf s7, x15 f460ac4ee47935eee5d1767539330f0e 4fdd7a0fc3c551c9266d919d068480e8 0000000000000000000000005e19b646 83a7d0cb571348df266d919d068480e8 fpsr=00000000
-ucvtf d7, x15 b8da7b95b68c15f9e2342da868efbd4f db51dda58cabb02760f209e050ab0a2d 000000000000000043d83c8278142ac3 c2782dd80f67561d60f209e050ab0a2d fpsr=00000000
-abs d22, d23 e10f3fca677b53c497750d4d8a6bbf94 a5b74da18b24053e2b8ec30de54a806e 00000000000000002b8ec30de54a806e a5b74da18b24053e2b8ec30de54a806e fpsr=00000000
-neg d22, d23 cfdd58ce5627523165747645fe8674be 0aef2be42011b2ede61f1d052540408c 000000000000000019e0e2fadabfbf74 0aef2be42011b2ede61f1d052540408c fpsr=00000000
-abs v8.2d, v7.2de1262782e36e6f1eab11c97024213cad 1ed9d87d1c9190e254ee368fdbdec353 fpsr=00000000
-abs v8.4s, v7.4sa5de1053b31228fb4900c86f88a5e664 5a21efad4cedd7054900c86f775a199c fpsr=00000000
-abs v8.2s, v7.2s77c80bc46f310c6cca2b65ae5c1d7840 000000000000000035d49a525c1d7840 fpsr=00000000
-abs v8.8h, v7.8hc281a310c2a7e9ed18aeadebcee43f3e 3d7f5cf03d59161318ae5215311c3f3e fpsr=00000000
-abs v8.4h, v7.4hf1a46475595089fb20a4abdf07588759 000000000000000020a45421075878a7 fpsr=00000000
-abs v8.16b, v7.16b72cedb2ddf08b911cf296b4936d39c8d 7232252d2108471131296b49362d6473 fpsr=00000000
-abs v8.8b, v7.8bb09a937501aa44ab105afae385b3cad6 0000000000000000105a061d7b4d362a fpsr=00000000
-neg v8.2d, v7.2d18a519886a14f845ce53636a20525c31 e75ae67795eb07bb31ac9c95dfada3cf fpsr=00000000
-neg v8.4s, v7.4s148af8a3c8219f5cf72fb29a340ea099 eb75075d37de60a408d04d66cbf15f67 fpsr=00000000
-neg v8.2s, v7.2s11e5bc02c4ad076a760af42eed41e00a 000000000000000089f50bd212be1ff6 fpsr=00000000
-neg v8.8h, v7.8h7b53f1e10d94faed370134e376496980 84ad0e1ff26c0513c8ffcb1d89b79680 fpsr=00000000
-neg v8.4h, v7.4hbf70247b4db14560262f7e75fc8087f8 0000000000000000d9d1818b03807808 fpsr=00000000
-neg v8.16b, v7.16b48d7e00d30e2b4402fb1dfa0ab43866c b82920f3d01e4cc0d14f216055bd7a94 fpsr=00000000
-neg v8.8b, v7.8b8124b2d3630212073fa2621faeeeb1da 0000000000000000c15e9ee152124f26 fpsr=00000000
-add d21, d22, d23 d8f4250992ec2d33401f13af32de563d 34327af4f2c664e9893ea54c1650e18d b8e3c5ea687ecf3f1f43ff0c626dbf92 0000000000000000a882a45878bea11f 34327af4f2c664e9893ea54c1650e18d b8e3c5ea687ecf3f1f43ff0c626dbf92 fpsr=00000000
+fcvtns v10.2s, v21.2s b6b7751284ce528411f0ee2c429eefc8 d46d3051d7286469671f791bb4b7b856 00000000000000007fffffff00000000 d46d3051d7286469671f791bb4b7b856 fpsr=00000000
+fcvtnu v10.2s, v21.2s 2f5d61564ee0f3400ae6cb833141e761 853ca193083c74280d6807322ff47ca3 00000000000000000000000000000000 853ca193083c74280d6807322ff47ca3 fpsr=00000000
+fcvtns w21, s10 cb7c0348b78eb37c7b7a910dd263f2bf 32bddffc2fa43c5f038696f4b36aebad cb7c0348b78eb37c7b7a910dd263f2bf 9586a9558c7ee2be0000000080000000 fpsr=00000000
+fcvtnu w21, s10 edf5bac91db8f319c48ca0aa86e571c1 3bd04a6cac401bf0a95a8640a3f76654 edf5bac91db8f319c48ca0aa86e571c1 90364f7c39c8b16f0000000000000000 fpsr=00000000
+fcvtns x21, s10 f2a8e6b9e23e13f746fb583aaca7c349 015443c3dff071b960c438f85c7c4c78 f2a8e6b9e23e13f746fb583aaca7c349 f8c7b27b4c9527490000000000000000 fpsr=00000000
+fcvtnu x21, s10 3c75e8f8660072f660a91a9da4894936 e32b29e029949e9b88a40bfb40d9fdf9 3c75e8f8660072f660a91a9da4894936 2c1b333025c7a42b0000000000000000 fpsr=00000000
+fcvtns w21, d10 2b3c1f6607dd70f6727446b2cf6b6267 0da3ed0492bd484ca76be116e50263af 2b3c1f6607dd70f6727446b2cf6b6267 1dddece227b76dd6000000007fffffff fpsr=00000000
+fcvtnu w21, d10 c685a83c75a8aa1102075e3cef48cd8c 7a870d3eaad6358b3b95c4f6b910293f c685a83c75a8aa1102075e3cef48cd8c f3592ca24df6f3960000000000000000 fpsr=00000000
+fcvtns x21, d10 94908953e7df9a87c5f135c59cbdbb5e 53602658167308c800f680c30605d609 94908953e7df9a87c5f135c59cbdbb5e 0737889bb1293e9c8000000000000000 fpsr=00000000
+fcvtnu x21, d10 d5a5ef2947437a8e5109c5914b438b04 797bdda8c9f4638e65bc0d4aacc1fe9f d5a5ef2947437a8e5109c5914b438b04 17c7b1bb0bb1411bffffffffffffffff fpsr=00000000
+fcvtps d10, d21 eba53b9ef5b2a905062f6f7f5cb8a05f 4bb79010223aa5bdcac8cc6c0d2502e3 00000000000000008000000000000000 4bb79010223aa5bdcac8cc6c0d2502e3 fpsr=00000000
+fcvtpu d21, d10 366ecb91520d88ce4242917130fd5750 2af6a26e82222e3590fb1c0a881142b3 00000000000000000000000000000000 2af6a26e82222e3590fb1c0a881142b3 fpsr=00000000
+fcvtps s10, s21 14e102e4bd3376c767248e4526f212b5 741670a3478f5fd516335e027e651cf1 0000000000000000000000007fffffff 741670a3478f5fd516335e027e651cf1 fpsr=00000000
+fcvtpu s21, s10 e8de3d759706d3d2d4b3c3dc9f77306f 8cf95c8fd360977fbc50f1354e01f27b 000000000000000000000000207c9ec0 8cf95c8fd360977fbc50f1354e01f27b fpsr=00000000
+fcvtps v10.2d, v21.2d 0f44de253f6500cdead09216f96c125d cf7dc51286743711e334358259c52432 80000000000000008000000000000000 cf7dc51286743711e334358259c52432 fpsr=00000000
+fcvtpu v10.2d, v21.2d ebf544d4152f5c99085c5bd397b11761 9f830c0cbfad9e6deabe8bcbfe9111f6 00000000000000000000000000000000 9f830c0cbfad9e6deabe8bcbfe9111f6 fpsr=00000000
+fcvtps v10.4s, v21.4s dbd0d062794548168f357cf3d6269f5a 5ceb905ddee92c7132cd52ef9d4419a6 7fffffff800000000000000100000000 5ceb905ddee92c7132cd52ef9d4419a6 fpsr=00000000
+fcvtpu v10.4s, v21.4s 40b4e1afcd882324de3b585618aa0b27 6495b1e4440942fe1a43ebcd96c09c24 ffffffff000002260000000100000000 6495b1e4440942fe1a43ebcd96c09c24 fpsr=00000000
+fcvtps v10.2s, v21.2s 1a61d08250ed3ff402feb4464ae3fb4f 534787c2aa279e624e868e8182f8a985 00000000000000004347408000000000 534787c2aa279e624e868e8182f8a985 fpsr=00000000
+fcvtpu v10.2s, v21.2s db2e4c18627584334bdf103a198e9606 9f9809a0556bb34e55d3dc3fceb9315a 0000000000000000ffffffff00000000 9f9809a0556bb34e55d3dc3fceb9315a fpsr=00000000
+fcvtps w21, s10 09de8684db81709a54c65c8962a1cb2a 2f0361cdbeeb085bf65f34d0ec99ec95 09de8684db81709a54c65c8962a1cb2a de28dbd7e9c76883000000007fffffff fpsr=00000000
+fcvtpu w21, s10 034fdda71af1630b7d93fa1385fcfd9b 6368ee284686fc688e08f6133d793b14 034fdda71af1630b7d93fa1385fcfd9b 295e27fe830590860000000000000000 fpsr=00000000
+fcvtps x21, s10 2a62b16180a4be6427254ab8e27f893a 3c6e684ccf7d309eda9fb2ab1515d08f 2a62b16180a4be6427254ab8e27f893a ddf763926c7ce0868000000000000000 fpsr=00000000
+fcvtpu x21, s10 399f29ed3191420728343433f5b81361 79982d6c027b9999997f3f7c5eb8d935 399f29ed3191420728343433f5b81361 7cee52193e5729520000000000000000 fpsr=00000000
+fcvtps w21, d10 9a31961554c15557ea7772cf1dd75cef 52945ed4cbec5a2c47546e1851b32eb7 9a31961554c15557ea7772cf1dd75cef 6827ded85716faa60000000080000000 fpsr=00000000
+fcvtpu w21, d10 203eb9ec158c86282458999ff777b942 28425d628bb1d33947ff9e5e4fe52ef6 203eb9ec158c86282458999ff777b942 2aa4f152d5d3375a0000000000000001 fpsr=00000000
+fcvtps x21, d10 5b828af6a1aa639ef6603030b72f3ad2 a4de4f79dbc0b1681e3b5b234103c291 5b828af6a1aa639ef6603030b72f3ad2 493344726eb76a3c8000000000000000 fpsr=00000000
+fcvtpu x21, d10 d4503f7113ef82552a9bcd11cbb38b1d b51df41c076b5897aad1b3c9ddd5539c d4503f7113ef82552a9bcd11cbb38b1d 5437ebb551b848f40000000000000001 fpsr=00000000
+fcvtzs d10, d21 edebd1f1d380d56d1d0898d66a36df25 931db576f97906ce564d5caa53efdff4 00000000000000007fffffffffffffff 931db576f97906ce564d5caa53efdff4 fpsr=00000000
+fcvtzu d21, d10 5aefc88f609df877b904fd3eeb29f662 9cbff56711cc1cef838fb6a60331c679 00000000000000000000000000000000 9cbff56711cc1cef838fb6a60331c679 fpsr=00000000
+fcvtzs s10, s21 7c3e842c1d254a515d6d5c29ae6b31b3 32e311cfb042f9d89076229d4e7b690b 0000000000000000000000003eda42c0 32e311cfb042f9d89076229d4e7b690b fpsr=00000000
+fcvtzu s21, s10 b3b766a867f92bdc6924147714def0fa b5696b8e36bdfd6adee4ff6e94ac278a 00000000000000000000000000000000 b5696b8e36bdfd6adee4ff6e94ac278a fpsr=00000000
+fcvtzs v10.2d, v21.2d 5d39cde3a1fafcf73e0985087c609215 83316383011b8985ccb7adfa33a661d6 00000000000000008000000000000000 83316383011b8985ccb7adfa33a661d6 fpsr=00000000
+fcvtzu v10.2d, v21.2d dca519bc28061d843bfb0fbb46d377e6 fe1b5890733dfc09bad18d228d4776ce 00000000000000000000000000000000 fe1b5890733dfc09bad18d228d4776ce fpsr=00000000
+fcvtzs v10.4s, v21.4s 90dbab155efeec62c1dc1372d315ff4b 8607aa93ec03b7d60910fec40270c654 00000000800000000000000000000000 8607aa93ec03b7d60910fec40270c654 fpsr=00000000
+fcvtzu v10.4s, v21.4s d7bbe2cca2c1cb702f8bf00b82078b25 7ad4b96dca4d19cc185561c1f001b246 ffffffff000000000000000000000000 7ad4b96dca4d19cc185561c1f001b246 fpsr=00000000
+fcvtzs v10.2s, v21.2s 14251fc255311a8fe5e70767b3897a54 3a63e6fe70fa82ca477f15f9b9da9985 00000000000000000000ff1500000000 3a63e6fe70fa82ca477f15f9b9da9985 fpsr=00000000
+fcvtzu v10.2s, v21.2s a4f9c1d8d52d37a044d1b766c77b2db8 279590263bec53b1f7707a4cbddbdbf1 00000000000000000000000000000000 279590263bec53b1f7707a4cbddbdbf1 fpsr=00000000
+fcvtzs w21, s10 e91628ec85948581ab2960e81ebc0330 a04818c58d01eb628807f1995be4d96a e91628ec85948581ab2960e81ebc0330 5fb88d1716df9f7b0000000000000000 fpsr=00000000
+fcvtzu w21, s10 425eb5dfc24761137bcf63cd162e5c9e 055dddbac51aaabb5823d9c2f3d4f2d0 425eb5dfc24761137bcf63cd162e5c9e fed295ec468fd69d0000000000000000 fpsr=00000000
+fcvtzs x21, s10 10afc790ee272d3512a31ff511af99e0 b7b33fe74418f19dc9a693a5e68d8703 10afc790ee272d3512a31ff511af99e0 9a9e6ae86c92c5370000000000000000 fpsr=00000000
+fcvtzu x21, s10 b2ebbee1691248c9d385f53f6f2119d8 152c9f2a69d91fe83a6e7d2393edf7e2 b2ebbee1691248c9d385f53f6f2119d8 93fb6cebe8c9cb2bffffffffffffffff fpsr=00000000
+fcvtzs w21, d10 88f0fbb192e913ae1b55448d8e623d64 5504d25ef6737874211cb7aaf597aa18 88f0fbb192e913ae1b55448d8e623d64 f39fdddfc98cedc30000000000000000 fpsr=00000000
+fcvtzu w21, d10 5603d7762626b1389e5067719c25e928 ce5caa70b80f3e168af470804cf4b647 5603d7762626b1389e5067719c25e928 52d8c54c6eda36e90000000000000000 fpsr=00000000
+fcvtzs x21, d10 f9226f3e7e73d5fe512a2600b8bd2b4e ebaeb9b199c8a3b9ebea9209d65056bc f9226f3e7e73d5fe512a2600b8bd2b4e 067a12d8e2b54f007fffffffffffffff fpsr=00000000
+fcvtzu x21, d10 c9e2849dfd0461ac83ca97a90e7dc8a1 0dd95c00f87c073ca5df7e24f28de955 c9e2849dfd0461ac83ca97a90e7dc8a1 6e67246485fb97e90000000000000000 fpsr=00000000
+scvtf v10.2d, v21.2d 2524777202b8b423970f184eff452101 93bff53f350dcb8118b193b3018ad0f3 c3db1002b032bc8d43b8b193b3018ad1 93bff53f350dcb8118b193b3018ad0f3 fpsr=00000000
+ucvtf v10.2d, v21.2d 6dc8a79fed702e44eadb0bceeaf4954e de3ee44cb1594e66a241319461266a76 43ebc7dc89962b2a43e44826328c24cd de3ee44cb1594e66a241319461266a76 fpsr=00000000
+scvtf v10.4s, v21.4s 4c388708cb41f1cca56eb9a8754317be f7fff43f4076020a62b1bf4143180937 cd0000bc4e80ec044ec5637f4e863012 f7fff43f4076020a62b1bf4143180937 fpsr=00000000
+ucvtf v10.4s, v21.4s 408b4153e4a51394811a8acf9abf38ab 526ce1f9efcc43451b9ff198241fa648 4ea4d9c44f6fcc434ddcff8d4e107e99 526ce1f9efcc43451b9ff198241fa648 fpsr=00000000
+scvtf v10.2s, v21.2s 17186f0d5b65149c952405e9327b2c1c 6a4a5c995536fbb8e423e55acf1eaed6 0000000000000000cddee0d5ce438545 6a4a5c995536fbb8e423e55acf1eaed6 fpsr=00000000
+ucvtf v10.2s, v21.2s 33bf7316906155c4416b89d69d5754f3 9e7bc401d1938a441d1dfa66a5f581c1 00000000000000004de8efd34f25f582 9e7bc401d1938a441d1dfa66a5f581c1 fpsr=00000000
+scvtf s7, w15, #1 f460ac4ee47935eee5d1767539330f0e 4fdd7a0fc3c551c9266d919d068480e8 0000000000000000000000004c50901d 83a7d0cb571348df266d919d068480e8 fpsr=00000000
+scvtf s7, w15, #16 b8da7b95b68c15f9e2342da868efbd4f db51dda58cabb02760f209e050ab0a2d 00000000000000000000000046a15614 c2782dd80f67561d60f209e050ab0a2d fpsr=00000000
+scvtf s7, w15, #32 e10f3fca677b53c497750d4d8a6bbf94 a5b74da18b24053e2b8ec30de54a806e 000000000000000000000000bdd5abfd eeabc83cadbe8b042b8ec30de54a806e fpsr=00000000
+scvtf d7, w15, #1 cfdd58ce5627523165747645fe8674be 0aef2be42011b2ede61f1d052540408c 000000000000000041b2a02046000000 662001d691f94874e61f1d052540408c fpsr=00000000
+scvtf d7, w15, #16 e1262782e36e6f1eab11c97024213cad 6cd9d64eac521716f18779a76e6fad67 000000000000000040db9beb59c00000 8ab737881cf8ec4df18779a76e6fad67 fpsr=00000000
+scvtf d7, w15, #32 77c80bc46f310c6cca2b65ae5c1d7840 2a55afbf8ec79397aca437d523b524df 00000000000000003fc1da926f800000 ba4fca30ae9bd76faca437d523b524df fpsr=00000000
+scvtf s7, x15, #1 f1a46475595089fb20a4abdf07588759 a5421417275086517857b66ea1f307d4 0000000000000000000000005e70af6d 57ca1aafa6c26aba7857b66ea1f307d4 fpsr=00000000
+scvtf s7, x15, #32 b09a937501aa44ab105afae385b3cad6 3c826835d6cd5024b48056514a09b626 000000000000000000000000ce96ff53 c00688e5644d040db48056514a09b626 fpsr=00000000
+scvtf s7, x15, #64 148af8a3c8219f5cf72fb29a340ea099 4ff308fbfb1d52f0c1ff78607dd790b4 000000000000000000000000be78021e 56e474b2481b064ac1ff78607dd790b4 fpsr=00000000
+scvtf d7, x15, #1 7b53f1e10d94faed370134e376496980 3f765647f722ec95feb37b799b3cf560 0000000000000000c364c848664c30aa 78443cf6b30dcf4ffeb37b799b3cf560 fpsr=00000000
+scvtf d7, x15, #32 48d7e00d30e2b4402fb1dfa0ab43866c 6bebb2fa29ba7cf3cb7ebf7d031a4508 0000000000000000c1ca40a0417e72dd 860642900504bffdcb7ebf7d031a4508 fpsr=00000000
+scvtf d7, x15, #64 d8f4250992ec2d33401f13af32de563d 34327af4f2c664e9893ea54c1650e18d 0000000000000000bfddb056acfa6bc8 e10ae6629cde3734893ea54c1650e18d fpsr=00000000
randV128: 1792 calls, 1849 iters
-sub d21, d22, d23 c38bbda0bc06dce829f2b61b78db10fe e830864ada7c96d44a165e7933af8a6d c67d2dec91b4de7c2ab49846b672900e 00000000000000001f61c6327d3cfa5f e830864ada7c96d44a165e7933af8a6d c67d2dec91b4de7c2ab49846b672900e fpsr=00000000
-add v9.2d, v7.2d, v8.2d e4a8b294ee32d592c49ca98e742dbacd f8b2254c9162e9222503df3a0bbf390a dd5ad7e17f95beb4e9a088c87fecf3d7 fpsr=00000000
-add v9.4s, v7.4s, v8.4s 7b6140e0c9848bcec0128ad02e619e1d 46ed0c8b09ec0cc9f6c1c3a9050718f2 c24e4d6bd3709897b6d44e793368b70f fpsr=00000000
-add v9.2s, v7.2s, v8.2s 9ebfc73a4ca59d47f71131dbca865840 c82c194d3bade0e9fcf96a644336f1f8 0000000000000000f40a9c3f0dbd4a38 fpsr=00000000
-add v9.8h, v7.8h, v8.8h 6881ee9ecc6e2b4f7408b7da8d2177b9 bbcf152b991da77361b80d362a737640 245003c9658bd2c2d5c0c510b794edf9 fpsr=00000000
-add v9.4h, v7.4h, v8.4h 5744c0e5fb93b71aa44693d71d9aedea bb1327a1fa91003bb4ec45ca7ec6b7cb 00000000000000005932d9a19c60a5b5 fpsr=00000000
-add v9.16b, v7.16b, v8.16b 4589a3cbf0ac21b854f89ebc7c370a15 c617da099240ecf3df6509aa6414257d 0ba07dd482ec0dab335da766e04b2f92 fpsr=00000000
-add v9.8b, v7.8b, v8.8b 71ac61ea1e30a81eb02e1155111f7e5e 37d9149df442cc2e30d1b24160248f17 0000000000000000e0ffc39671430d75 fpsr=00000000
-sub v9.2d, v7.2d, v8.2d 76ed21bc5b74ee1e45d5854b9e575ac7 cb391f78168b605d54befad9589c263d abb4024444e98dc1f1168a7245bb348a fpsr=00000000
-sub v9.4s, v7.4s, v8.4s 9ef4a3944df3c9d4569af79c8e037c70 f9b0c2a55df2670d205bfb7f010913d0 a543e0eff00162c7363efc1d8cfa68a0 fpsr=00000000
-sub v9.2s, v7.2s, v8.2s 2daaa8cc4b3087c5a3b52395a9c08013 228e517395a6bbe31716cb78e8c8aab6 00000000000000008c9e581dc0f7d55d fpsr=00000000
-sub v9.8h, v7.8h, v8.8h 55d897db27d97a42083d57b0ab19836a 639a8d39936d242ce92760be0d844379 f23e0aa2946c56161f16f6f29d953ff1 fpsr=00000000
-sub v9.4h, v7.4h, v8.4h b870bec8853d831ba6edf160396535df f3b8dc59aa25ab20f5a0e4261d523e46 0000000000000000b14d0d3a1c13f799 fpsr=00000000
-sub v9.16b, v7.16b, v8.16b 3d51cda4c62e1981374858040bb12b87 e7ca026ca90693fc6583dc4ba1f9e4a1 5687cb381d288685d2c57cb96ab847e6 fpsr=00000000
-sub v9.8b, v7.8b, v8.8b 99862df934b6dce73e8a4e0c356437f5 7c30c60c06851eb465dd7ff6fe9de5ae 0000000000000000d9adcf1637c75247 fpsr=00000000
-addhn v9.2s, v7.2d, v8.2d 4aade6a2828b4c7e29034a825be4498b 4f2751b395f8ec19819d67d3f947526f 000000000000000099d53856aaa0b256 fpsr=00000000
-addhn2 v9.4s, v7.2d, v8.2d 5ccf2bbc8b97fcdfa7918b6db5dd9cc5 41ba82d42ecff20554c5c18507a358e5 9e89ae90fc574cf2393119430b47221a fpsr=00000000
-addhn v9.4h, v7.4s, v8.4s ff253e627c77b0962268452db8249275 328ac5a5d35f6be03ddd55aa6275a2e4 000000000000000031b04fd760451a9a fpsr=00000000
-addhn2 v9.8h, v7.4s, v8.4s f508d1be5c90c9b3a0b04c5ee5c36620 2047b7a17a8f9e5b225535c34997ee2b 1550d720c3052f5b4dc7091ac18dbbc8 fpsr=00000000
-addhn v9.8b, v7.8h, v8.8h 5b368dcb81b766872cd8ba2a8242a848 464e1f6196d6cb6a2f3d999b2230edda 0000000000000000a1ad18315c53a496 fpsr=00000000
-addhn2 v9.16b, v7.8h, v8.8h ac4f7a659ea30845342f069d33064851 42df2661fc8993ddf18218ddaf45b0f5 efa09b9c251fe2f947b85fdc206c1729 fpsr=00000000
-subhn v9.2s, v7.2d, v8.2d c6d00245c8eb900083e20aa0fc56977c 101855fbe1dff56954f4ad1317bea85f 0000000000000000b6b7ac492eed5d8d fpsr=00000000
-subhn2 v9.4s, v7.2d, v8.2d e518ec0574063eaa4700feff415845ed 0cf79369d9ef54a0a441afa7dc61a5d9 d821589ba2bf4f570cf85d5ccd963cd1 fpsr=00000000
-subhn v9.4h, v7.4s, v8.4s a66661217649b2150b787a63c91364a6 f45c2bc6d8af6ef38ff6d6e5e5d4d706 0000000000000000b20a9d9a7b81e33e fpsr=00000000
-subhn2 v9.8h, v7.4s, v8.4s 04d8eaf302ebeef4bc197657b66e6289 e204c30c34f665b621843cf6759ece69 22d4cdf59a9540cfa8904c468d2e1258 fpsr=00000000
-subhn v9.8b, v7.8h, v8.8h 558e6516a07aba1bc53859e631267d65 fbb4d27dc958b03067c6e0950cc1c54a 00000000000000005992d7095d7924b8 fpsr=00000000
-subhn2 v9.16b, v7.8h, v8.8h 2879789e31d24c344a41059e1db1323b 0affd5281de6e502873565e79e9dea46 1da31367c39f7f473d1dc61eed5ba627 fpsr=00000000
-raddhn v9.2s, v7.2d, v8.2d 9823c7405c745cf4daad79e99e679f0e dfe8bfde9ca56d372c772fd0a71c6d0b 0000000000000000780c871f0724a9ba fpsr=00000000
-raddhn2 v9.4s, v7.2d, v8.2d 42ca7875f5b68a2e046b4d72784ed3e1 384edbbc3a8d0a41041bf79b0be27d3b 7b1954320887450eaf142bbe8c4e24a7 fpsr=00000000
-raddhn v9.4h, v7.4s, v8.4s 218e159731d0d894b24979c2d04c4097 30f0cfba4d73db721b8ed5700e78ab59 0000000000000000527f7f45cdd8dec5 fpsr=00000000
-raddhn2 v9.8h, v7.4s, v8.4s 936b85e2a3d7a6b833f657462b28b6f1 446ca5b5880f61fedd20425c5543e8c7 d7d82be71117806de267befa0eba8f6c fpsr=00000000
-raddhn v9.8b, v7.8h, v8.8h 5442137042c3b40d31009f476c896592 5040c56601f67df616fe1649e48a83c7 0000000000000000a5d9453248b651e9 fpsr=00000000
-raddhn2 v9.16b, v7.8h, v8.8h 81d1653b606922e6bad669efd9f5defd 91cbf7682ba0704df438890120742e7d 145d8c93aff3fa0dba0cc5a71855ec0b fpsr=00000000
-rsubhn v9.2s, v7.2d, v8.2d 95b6851eb38171753bc72e4915d21195 a44c6436db62d8d503bb362ece06f8eb 0000000000000000f16a20e8380bf81a fpsr=00000000
-rsubhn2 v9.4s, v7.2d, v8.2d 6e6fdbd34fa083cc7f00c6402666509b 84e295294673b8412e57125c112853f3 e98d46aa50a9b3e41bf683994dd03e16 fpsr=00000000
-rsubhn v9.4h, v7.4s, v8.4s 485b2ff6a83d96deb3906a9e6fda4a32 78e73b425762ffef7ae5c0019f5f8976 0000000000000000cf7450db38abd07b fpsr=00000000
-rsubhn2 v9.8h, v7.4s, v8.4s 8222444bfdbdc0f06f712041cb155dbc 3e25e79c36592546e9193ca251e28a22 43fcc765865879337e51971a1f5611fe fpsr=00000000
-rsubhn v9.8b, v7.8h, v8.8h 776ab28f92c3c8f73eed236e6b0ccca1 d0127d7fdf8a79b394a03047c87ff33a 0000000000000000a735b34faaf3a3d9 fpsr=00000000
-rsubhn2 v9.16b, v7.8h, v8.8h ed00c62274b20a6d9b7bf885f2ec4d6b cced2765264b9c0a076a3499c93dd4c3 209f4e6e94c42a7981fdf990c8fa6d8e fpsr=00000000
-addp d22, v23.2d bf63e8c0b7216563544a787066fd325c 2dd36ca840d48ffd3043412377039d9d 00000000000000005e16adcbb7d82d9a 2dd36ca840d48ffd3043412377039d9d fpsr=00000000
-addp v9.2d, v7.2d, v8.2d 52c53585c13bb01f5bdbb05058961f8d f30127be0b7293ee9e89d5d40f796074 918afd921aebf462aea0e5d619d1cfac fpsr=00000000
-addp v9.4s, v7.4s, v8.4s f59fcb149e76c2e133c1386a509e8a33 f128df40d2f94323c19279aa64b7474a c42222632649c0f494168df5845fc29d fpsr=00000000
-addp v9.2s, v7.2s, v8.2s 3421d5502a5be597c762f29ba2a17014 55f75a837a327928b9e76dbb9788ee45 000000000000000051705c006a0462af fpsr=00000000
-addp v9.8h, v7.8h, v8.8h 8ae95e141ba29973810e57eff505bf90 baabc002d873d6cd127649b16af26568 7aadaf405c27d05ae8fdb515d8fdb495 fpsr=00000000
-addp v9.4h, v7.4h, v8.4h d575cc1b85e0be8830f23f4f4c11caec 1d63991621f45bc7b80d061804db1c96 0000000000000000be252171704116fd fpsr=00000000
-addp v9.16b, v7.16b, v8.16b 5125e8ffdd8d96c7fe1ee4860cec4048 da1ecefbe9ca67a7f85bfd5ae80ae490 f8c9b30e5357f27476e76a5d1c6af888 fpsr=00000000
-addp v9.8b, v7.8b, v8.8b 9b36dc39f7fec0047a7fdc3ff99b32a8 aebaa8cb25ecbbe07eeee5c0fa26eef9 00000000000000006ca520e7f91b94da fpsr=00000000
-addv s22, v23.4s aec72f26086b3df18ee52104380610ef b6f6cf80283277c55635d77680b4c954 000000000000000000000000b613e80f b6f6cf80283277c55635d77680b4c954 fpsr=00000000
-addv h22, v23.8h 6e6f4bf5a9501d87ee7e4d861e1c6703 6e882e0df0d9861e23e07478b225acdc 00000000000000000000000000000ae5 6e882e0df0d9861e23e07478b225acdc fpsr=00000000
-addv h22, v23.4h 52911c72e8d11d9fc6b5613bb6b1d2dc 22cb5bc1aed44df140621225eecd3b21 00000000000000000000000000007c75 22cb5bc1aed44df140621225eecd3b21 fpsr=00000000
-addv b22, v23.16b ba0e027e25ce9c17766ac00361a7af5a 32a1b67cc2032b1c0d99125d948dd403 0000000000000000000000000000001e 32a1b67cc2032b1c0d99125d948dd403 fpsr=00000000
-addv b22, v23.8b 06c45df9c127fad05f7cc7be7edc615c 309a155661bc5b3a970fa92da5948645 00000000000000000000000000000080 309a155661bc5b3a970fa92da5948645 fpsr=00000000
-and v9.16b, v7.16b, v8.16b e88273866d7cacfd3aa9b5ed9fd5aa1e a84b547b9e027d9928d262d8020de9d3 a80250020c002c99288020c80205a812 fpsr=00000000
-and v9.8b, v7.8b, v8.8b cd5df4bc956cd5845a3b538d8f86bd70 4d4d9595c587107358421905c51da516 0000000000000000580211058504a510 fpsr=00000000
-bic v9.16b, v7.16b, v8.16b 3c2c82326ba235624474d977f96c92ff 0601f0c38c1911402ca7966043ba2841 382c023063a2242240504917b84492be fpsr=00000000
-bic v9.8b, v7.8b, v8.8b f3cb6403e5138d08a4e302f7c22f576e b0e6ccbf084e60116f32b3d4822cc297 000000000000000080c1002340031568 fpsr=00000000
-orr v9.16b, v7.16b, v8.16b 0df943295698feca87f5e4362e559f3e 8759f324ad9e3dd94ef0a72be697243a 8ff9f32dff9effdbcff5e73feed7bf3e fpsr=00000000
-orr v9.8b, v7.8b, v8.8b 0756277f75e509da59f9fa40e24459d3 289a8d6d515e486a56cf0c0f33045d2d 00000000000000005ffffe4ff3445dff fpsr=00000000
-orn v9.16b, v7.16b, v8.16b bd5f7ac055938c4ae61f1afee343d66e 8ec723f327c58378749fda0c8e58df52 fd7ffeccddbbfccfef7f3ffff3e7f6ef fpsr=00000000
-orn v9.8b, v7.8b, v8.8b 6d7403856a16ca0d5c737f3b9478c732 17df9df2c5eb4d94f30e688b7b5a796c 00000000000000005cf3ff7f94fdc7b3 fpsr=00000000
-orr v22.8h, #0x5A, LSL #0 b2d2eb4a89c663f647e6c0a2bbeb3b22 7ec043831ec4683180aa71d8dfb05d1d b2daeb5a89de63fe47fec0fabbfb3b7a 7ec043831ec4683180aa71d8dfb05d1d fpsr=00000000
-orr v22.8h, #0xA5, LSL #8 e128bea28728f3a128e20c1cfee21be8 24b628e1e03e15858cae3c574c98f77d e528bfa2a728f7a1ade2ad1cffe2bfe8 24b628e1e03e15858cae3c574c98f77d fpsr=00000000
-orr v22.4h, #0x5A, LSL #0 2dd17ec29b7e5b66795479e06cb1c60b be36127d106331ebe06141993b10f432 0000000000000000795e79fa6cfbc65b be36127d106331ebe06141993b10f432 fpsr=00000000
-orr v22.4h, #0xA5, LSL #8 f6ab8c8825a7f9229b1b68cf64389d6b ad2062380f151d41dda1df7e0df8b51c 0000000000000000bf1bedcfe538bd6b ad2062380f151d41dda1df7e0df8b51c fpsr=00000000
-orr v22.4s, #0x5A, LSL #0 9b9747d6868530b8ed1938ca4756ffe7 505378f23d323868e24f76e62230991b 9b9747de868530faed1938da4756ffff 505378f23d323868e24f76e62230991b fpsr=00000000
-orr v22.4s, #0x6B, LSL #8 7c750f8a1df65d07cf2d49af74ed4d60 07b1b28bf89ce340504b67b1d898000f 7c756f8a1df67f07cf2d6baf74ed6f60 07b1b28bf89ce340504b67b1d898000f fpsr=00000000
-orr v22.4s, #0x49, LSL #16 f92545854adbe3efa236fc5f4cdbe6b7 331872e3a2317da9857511bf910f4bd7 f96d45854adbe3efa27ffc5f4cdbe6b7 331872e3a2317da9857511bf910f4bd7 fpsr=00000000
-orr v22.4s, #0x3D, LSL #24 336918da9bd26682e4add5efad76d954 1da054bdaa36e0a3635bc9bd70b06ab0 3f6918dabfd26682fdadd5efbd76d954 1da054bdaa36e0a3635bc9bd70b06ab0 fpsr=00000000
-orr v22.2s, #0x5A, LSL #0 6784034f425fffadcad311238aae0a66 65b13f1dd4d1a3fc521fb31c750ea423 0000000000000000cad3117b8aae0a7e 65b13f1dd4d1a3fc521fb31c750ea423 fpsr=00000000
-orr v22.2s, #0x6B, LSL #8 30499324f7b8a70899c628398b953fee 1aa3e85464f00e7f03e98ed6f5d47802 000000000000000099c66b398b957fee 1aa3e85464f00e7f03e98ed6f5d47802 fpsr=00000000
-orr v22.2s, #0x49, LSL #16 ed9828371abcbe75b16777120d0cd8c9 9c58ae42ba73810bd399bbcb4fe2482e 0000000000000000b16f77120d4dd8c9 9c58ae42ba73810bd399bbcb4fe2482e fpsr=00000000
-orr v22.2s, #0x3D, LSL #24 fe5123690c4da5d27097608e72f233da 49aef1c736395a7f240f9adbe4187487 00000000000000007d97608e7ff233da 49aef1c736395a7f240f9adbe4187487 fpsr=00000000
-bic v22.8h, #0x5A, LSL #0 c454e49a2d49bb003834438d1929b200 838612c33924fbbc552b8ae513565bed c404e4802d01bb00382443851921b200 838612c33924fbbc552b8ae513565bed fpsr=00000000
-bic v22.8h, #0xA5, LSL #8 9f80c9aadb9261df691f7eef6390b41b aac070152212c4a2c7ccebcb3c7b5d40 1a8048aa5a9240df481f5aef4290101b aac070152212c4a2c7ccebcb3c7b5d40 fpsr=00000000
-bic v22.4h, #0x5A, LSL #0 edb634797806f54f62387494af069a0a 1c3c6b9f52e41311d8d31d6bbf68da5f 000000000000000062207484af049a00 1c3c6b9f52e41311d8d31d6bbf68da5f fpsr=00000000
-bic v22.4h, #0xA5, LSL #8 10d785e76486da2f835e825b5d6cc3ae 3bda643f287a4ae9eb2181a7fdfe332c 0000000000000000025e025b586c42ae 3bda643f287a4ae9eb2181a7fdfe332c fpsr=00000000
-bic v22.4s, #0x5A, LSL #0 68c11bd3fef26d612d730a26cea390e8 6779bad604b4c90a5d94765d561bc885 68c11b81fef26d212d730a24cea390a0 6779bad604b4c90a5d94765d561bc885 fpsr=00000000
+ucvtf s7, w15, #1 8d8c1eb39292c6a7c92b31f16bf839d3 f92b1015b026045997d58cc632bd28d0 0000000000000000000000004dcaf4a3 e830864ada7c96d497d58cc632bd28d0 fpsr=00000000
+ucvtf s7, w15, #16 c67d2dec91b4de7c2ab49846b672900e 1ab5d43dc6babb215621d5cab9427baf 0000000000000000000000004739427c fc5785291fbe3dbd5621d5cab9427baf fpsr=00000000
+ucvtf s7, w15, #32 e4a8b294ee32d592c49ca98e742dbacd f8b2254c9162e9222503df3a0bbf390a 0000000000000000000000003d3bf391 7b6140e0c9848bce2503df3a0bbf390a fpsr=00000000
+ucvtf d7, w15, #1 46ed0c8b09ec0cc9f6c1c3a9050718f2 f200632173feee3c645b0af48714c2c3 000000000000000041d0e29858600000 c82c194d3bade0e9645b0af48714c2c3 fpsr=00000000
+ucvtf d7, w15, #16 4c2c9bb143c2e20121054676c7e0095b 6881ee9ecc6e2b4f7408b7da8d2177b9 000000000000000040e1a42ef7200000 40996f50d21b9dec7408b7da8d2177b9 fpsr=00000000
+ucvtf d7, w15, #32 5744c0e5fb93b71aa44693d71d9aedea bb1327a1fa91003bb4ec45ca7ec6b7cb 00000000000000003fdfb1adf2c00000 4589a3cbf0ac21b8b4ec45ca7ec6b7cb fpsr=00000000
+ucvtf s7, x15, #1 c617da099240ecf3df6509aa6414257d 4a976e0b5f48cbe084e614a5b9e2e3db 0000000000000000000000005e84e615 37d9149df442cc2e84e614a5b9e2e3db fpsr=00000000
+ucvtf s7, x15, #32 f98349fb67aae06e334208d0fe2d10f5 76ed21bc5b74ee1e45d5854b9e575ac7 0000000000000000000000004e8bab0b 746c22a53fbbff2c45d5854b9e575ac7 fpsr=00000000
+ucvtf s7, x15, #64 9ef4a3944df3c9d4569af79c8e037c70 f9b0c2a55df2670d205bfb7f010913d0 0000000000000000000000003e016fee 2daaa8cc4b3087c5205bfb7f010913d0 fpsr=00000000
+ucvtf d7, x15, #1 228e517395a6bbe31716cb78e8c8aab6 5bf2ab5052451e0d74e776296d47a2f8 000000000000000043cd39dd8a5b51e9 639a8d39936d242c74e776296d47a2f8 fpsr=00000000
+ucvtf d7, x15, #32 52dd395b5564e43fb140cab5fb343595 b870bec8853d831ba6edf160396535df 000000000000000041e4ddbe2c072ca7 c0f7b6c5a827648da6edf160396535df fpsr=00000000
+ucvtf d7, x15, #64 3d51cda4c62e1981374858040bb12b87 e7ca026ca90693fc6583dc4ba1f9e4a1 00000000000000003fd960f712e87e79 99862df934b6dce76583dc4ba1f9e4a1 fpsr=00000000
+scvtf s7, w15 7c30c60c06851eb465dd7ff6fe9de5ae 43c7c3a7f4130bc7a4df785044b4ed90 0000000000000000000000004e8969db 4f2751b395f8ec19a4df785044b4ed90 fpsr=00000000
+scvtf d7, w15 70598473754752b89be09f6b34dac2ea 5ccf2bbc8b97fcdfa7918b6db5dd9cc5 0000000000000000c1d28898cec00000 79ab68b97156166da7918b6db5dd9cc5 fpsr=00000000
+scvtf s7, x15 ff253e627c77b0962268452db8249275 328ac5a5d35f6be03ddd55aa6275a2e4 0000000000000000000000005e777557 f508d1be5c90c9b33ddd55aa6275a2e4 fpsr=00000000
+scvtf d7, x15 2047b7a17a8f9e5b225535c34997ee2b 2dc0153eb9c3fa624dc7091ac18dbbc8 000000000000000043d371c246b0636f 464e1f6196d6cb6a4dc7091ac18dbbc8 fpsr=00000000
+ucvtf s7, w15 ed8a2ef71e6c7389238957f495b2258d ac4f7a659ea30845342f069d33064851 0000000000000000000000004e4c1921 cc5eb3847e087d71342f069d33064851 fpsr=00000000
+ucvtf d7, w15 c6d00245c8eb900083e20aa0fc56977c 101855fbe1dff56954f4ad1317bea85f 000000000000000041b7bea85f000000 e518ec0574063eaa54f4ad1317bea85f fpsr=00000000
+ucvtf s7, x15 0cf79369d9ef54a0a441afa7dc61a5d9 b8fb05e0e25722ae0cf85d5ccd963cd1 0000000000000000000000005d4f85d6 f45c2bc6d8af6ef30cf85d5ccd963cd1 fpsr=00000000
+ucvtf d7, x15 1ee14244b0571f48e685a5e998b4ae82 04d8eaf302ebeef4bc197657b66e6289 000000000000000043e7832ecaf6cdcc 5d6c6fb6ae0252dabc197657b66e6289 fpsr=00000000
+abs d22, d23 558e6516a07aba1bc53859e631267d65 fbb4d27dc958b03067c6e0950cc1c54a 000000000000000067c6e0950cc1c54a fbb4d27dc958b03067c6e0950cc1c54a fpsr=00000000
+neg d22, d23 0affd5281de6e502873565e79e9dea46 5056ee55944df1623d1dc61eed5ba627 0000000000000000c2e239e112a459d9 5056ee55944df1623d1dc61eed5ba627 fpsr=00000000
+abs v8.2d, v7.2d83099a08d80dcf8a60f0fb3b5eb50b0c 7cf665f727f2307660f0fb3b5eb50b0c fpsr=00000000
+abs v8.4s, v7.4s384edbbc3a8d0a41041bf79b0be27d3b 384edbbc3a8d0a41041bf79b0be27d3b fpsr=00000000
+abs v8.2s, v7.2s218e159731d0d894b24979c2d04c4097 00000000000000004db6863e2fb3bf69 fpsr=00000000
+abs v8.8h, v7.8hac63d4d667b207ff56978e6fda4e9f1c 539d2b2a67b207ff5697719125b260e4 fpsr=00000000
+abs v8.4h, v7.4h446ca5b5880f61fedd20425c5543e8c7 000000000000000022e0425c55431739 fpsr=00000000
+abs v8.16b, v7.16b5442137042c3b40d31009f476c896592 54421370423d4c0d310061476c77656e fpsr=00000000
+abs v8.8b, v7.8b4a84aa423eaacaa94054b3e94c7a637b 000000000000000040544d174c7a637b fpsr=00000000
+neg v8.2d, v7.2d91cbf7682ba0704df438890120742e7d 6e340897d45f8fb30bc776fedf8bd183 fpsr=00000000
+neg v8.4s, v7.4s95b6851eb38171753bc72e4915d21195 6a497ae24c7e8e8bc438d1b7ea2dee6b fpsr=00000000
+neg v8.2s, v7.2sc2dee1a082289b9dff1dad7e57ef5abd 000000000000000000e25282a810a543 fpsr=00000000
+neg v8.8h, v7.8h84e295294673b8412e57125c112853f3 7b1e6ad7b98d47bfd1a9eda4eed8ac0d fpsr=00000000
+neg v8.4h, v7.4h485b2ff6a83d96deb3906a9e6fda4a32 00000000000000004c7095629026b5ce fpsr=00000000
+neg v8.16b, v7.16bbfb9abff94af4c7e6467b20eb6320f5d 414755016c51b4829c994ef24acef1a3 fpsr=00000000
+neg v8.8b, v7.8b3e25e79c36592546e9193ca251e28a22 000000000000000017e7c45eaf1e76de fpsr=00000000
+add d21, d22, d23 776ab28f92c3c8f73eed236e6b0ccca1 d0127d7fdf8a79b394a03047c87ff33a d823991353cb02104eff712c2e0b20d8 0000000000000000e39fa173f68b1412 d0127d7fdf8a79b394a03047c87ff33a d823991353cb02104eff712c2e0b20d8 fpsr=00000000
+sub d21, d22, d23 bf63e8c0b7216563544a787066fd325c 2dd36ca840d48ffd3043412377039d9d 1d226962b128289621bc486f32a787a1 00000000000000000e86f8b4445c15fc 2dd36ca840d48ffd3043412377039d9d 1d226962b128289621bc486f32a787a1 fpsr=00000000
+add v9.2d, v7.2d, v8.2d cae8d9659338cb7aecc4bccf0528461c f59fcb149e76c2e133c1386a509e8a33 c088a47a31af8e5b2085f53955c6d04f fpsr=00000000
+add v9.4s, v7.4s, v8.4s 9c685842346c7620432c1178192ff6d0 3421d5502a5be597c762f29ba2a17014 d08a2d925ec85bb70a8f0413bbd166e4 fpsr=00000000
+add v9.2s, v7.2s, v8.2s fd6e47d2483b7d51e84f345feb400b74 8ae95e141ba29973810e57eff505bf90 0000000000000000695d8c4ee045cb04 fpsr=00000000
+add v9.8h, v7.8h, v8.8h a9d9ef31c499a07f88bcdccf6002b5ac d575cc1b85e0be8830f23f4f4c11caec 7f4ebb4c4a795f07b9ae1c1eac138098 fpsr=00000000
+add v9.4h, v7.4h, v8.4h bc67f75afc5ffffc2ee022f3bdfb86fa 5125e8ffdd8d96c7fe1ee4860cec4048 00000000000000002cfe0779cae7c742 fpsr=00000000
+add v9.16b, v7.16b, v8.16b b3b86927a5411cfb470a7fd5a5916dc0 9b36dc39f7fec0047a7fdc3ff99b32a8 4eee45609c3fdcffc1895b149e2c9f68 fpsr=00000000
+add v9.8b, v7.8b, v8.8b 6b49ae52d3d7d78fa069cc5f1e0bba41 aec72f26086b3df18ee52104380610ef 00000000000000002e4eed635611ca30 fpsr=00000000
+sub v9.2d, v7.2d, v8.2d 207a8c76fa986faa650c405d8b8f1f9e e8d6cbffa3e96e2088fe0c404ef3abde 37a3c07756af018adc0e341d3c9b73c0 fpsr=00000000
+sub v9.4s, v7.4s, v8.4s 6e882e0df0d9861e23e07478b225acdc 0543f6dfbe6f13051558543d1e093419 6944372e326a73190e88203b941c78c3 fpsr=00000000
+sub v9.2s, v7.2s, v8.2s 52911c72e8d11d9fc6b5613bb6b1d2dc 22cb5bc1aed44df140621225eecd3b21 000000000000000086534f16c7e497bb fpsr=00000000
+sub v9.8h, v7.8h, v8.8h 28963ddf779793bd9b3960111dfc6061 ba0e027e25ce9c17766ac00361a7af5a 6e883b6151c9f7a624cfa00ebc55b107 fpsr=00000000
+sub v9.4h, v7.4h, v8.4h ae73db709221a9ed4ef92845cbab880c ab8952d23af4e089849f34c37ddce305 0000000000000000ca5af3824dcfa507 fpsr=00000000
+sub v9.16b, v7.16b, v8.16b 309a155661bc5b3a970fa92da5948645 9a5d259b64d5d57e2e0bfacf56240216 963df0bbfde786bc6904af5e4f70842f fpsr=00000000
+sub v9.8b, v7.8b, v8.8b e88273866d7cacfd3aa9b5ed9fd5aa1e a84b547b9e027d9928d262d8020de9d3 000000000000000012d753159dc8c14b fpsr=00000000
+addhn v9.2s, v7.2d, v8.2d cd5df4bc956cd5845a3b538d8f86bd70 4d4d9595c587107358421905c51da516 00000000000000001aab8a52b27d6c93 fpsr=00000000
+addhn2 v9.4s, v7.2d, v8.2d 3c2c82326ba235624474d977f96c92ff 0601f0c38c1911402ca7966043ba2841 422e72f5711c6fd8a7105e28d4fd2d2c fpsr=00000000
+addhn v9.4h, v7.4s, v8.4s f3cb6403e5138d08a4e302f7c22f576e b0e6ccbf084e60116f32b3d4822cc297 0000000000000000a4b2ed611415445c fpsr=00000000
+addhn2 v9.8h, v7.4s, v8.4s 0df943295698feca87f5e4362e559f3e 8759f324ad9e3dd94ef0a72be697243a 95530437d6e614ecda75fe0c05d30f1c fpsr=00000000
+addhn v9.8b, v7.8h, v8.8h 0756277f75e509da59f9fa40e24459d3 289a8d6d515e486a56cf0c0f33045d2d 00000000000000002fb4c752b00615b7 fpsr=00000000
+addhn2 v9.16b, v7.8h, v8.8h bd5f7ac055938c4ae61f1afee343d66e 8ec723f327c58378749fda0c8e58df52 4c9e7d0f5af571b57780359341ebc6d9 fpsr=00000000
+subhn v9.2s, v7.2d, v8.2d 6d7403856a16ca0d5c737f3b9478c732 17df9df2c5eb4d94f30e688b7b5a796c 000000000000000055946592696516b0 fpsr=00000000
+subhn2 v9.4s, v7.2d, v8.2d b2d2eb4a89c663f647e6c0a2bbeb3b22 7ec043831ec4683180aa71d8dfb05d1d 3412a7c7c73c4ec95f2348932df9...
[truncated message content] |
|
From: <sv...@va...> - 2015-03-30 18:49:46
|
Author: sewardj
Date: Mon Mar 30 19:49:38 2015
New Revision: 3112
Log:
arm64: add support for
FCVT{N,M,A,P,Z}{S,U} 2d_2d, 4s_4s, 2s_2s
Modified:
trunk/priv/guest_arm64_toIR.c
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Mon Mar 30 19:49:38 2015
@@ -9935,9 +9935,9 @@
/* -------- 1,0x,11100 FCVTAS d_d, s_s (ix 3) -------- */
/* -------- 1,1x,11010 FCVTPS d_d, s_s (ix 4) -------- */
/* -------- 1,1x,11011 FCVTZS d_d, s_s (ix 5) -------- */
- Bool is64 = (size & 1) == 1;
- IRType tyF = is64 ? Ity_F64 : Ity_F32;
- IRType tyI = is64 ? Ity_I64 : Ity_I32;
+ Bool isD = (size & 1) == 1;
+ IRType tyF = isD ? Ity_F64 : Ity_F32;
+ IRType tyI = isD ? Ity_I64 : Ity_I32;
IRRoundingMode irrm = 8; /*impossible*/
HChar ch = '?';
switch (ix) {
@@ -9950,20 +9950,20 @@
}
IROp cvt = Iop_INVALID;
if (bitU == 1) {
- cvt = is64 ? Iop_F64toI64U : Iop_F32toI32U;
+ cvt = isD ? Iop_F64toI64U : Iop_F32toI32U;
} else {
- cvt = is64 ? Iop_F64toI64S : Iop_F32toI32S;
+ cvt = isD ? Iop_F64toI64S : Iop_F32toI32S;
}
IRTemp src = newTemp(tyF);
IRTemp res = newTemp(tyI);
assign(src, getQRegLane(nn, 0, tyF));
assign(res, binop(cvt, mkU32(irrm), mkexpr(src)));
putQRegLane(dd, 0, mkexpr(res)); /* bits 31-0 or 63-0 */
- if (!is64) {
+ if (!isD) {
putQRegLane(dd, 1, mkU32(0)); /* bits 63-32 */
}
putQRegLane(dd, 1, mkU64(0)); /* bits 127-64 */
- HChar sOrD = is64 ? 'd' : 's';
+ HChar sOrD = isD ? 'd' : 's';
DIP("fcvt%c%c %c%u, %c%u\n", ch, bitU == 1 ? 'u' : 's',
sOrD, dd, sOrD, nn);
return True;
@@ -12049,9 +12049,6 @@
default: vassert(0);
}
- IRTemp src = newTempV128();
- assign(src, getQReg128(nn));
-
IROp opRND = isD ? Iop_RoundF64toInt : Iop_RoundF32toInt;
if (isD) {
for (UInt i = 0; i < 2; i++) {
@@ -12073,6 +12070,63 @@
return True;
}
+ ix = 0; /*INVALID*/
+ switch (opcode) {
+ case BITS5(1,1,0,1,0): ix = ((size & 2) == 2) ? 4 : 1; break;
+ case BITS5(1,1,0,1,1): ix = ((size & 2) == 2) ? 5 : 2; break;
+ case BITS5(1,1,1,0,0): if ((size & 2) == 0) ix = 3; break;
+ default: break;
+ }
+ if (ix > 0) {
+ /* -------- 0,0x,11010 FCVTNS 2d_2d, 4s_4s, 2s_2s (ix 1) -------- */
+ /* -------- 0,0x,11011 FCVTMS 2d_2d, 4s_4s, 2s_2s (ix 2) -------- */
+ /* -------- 0,0x,11100 FCVTAS 2d_2d, 4s_4s, 2s_2s (ix 3) -------- */
+ /* -------- 0,1x,11010 FCVTPS 2d_2d, 4s_4s, 2s_2s (ix 4) -------- */
+ /* -------- 0,1x,11011 FCVTZS 2d_2d, 4s_4s, 2s_2s (ix 5) -------- */
+ /* -------- 1,0x,11010 FCVTNS 2d_2d, 4s_4s, 2s_2s (ix 1) -------- */
+ /* -------- 1,0x,11011 FCVTMS 2d_2d, 4s_4s, 2s_2s (ix 2) -------- */
+ /* -------- 1,0x,11100 FCVTAS 2d_2d, 4s_4s, 2s_2s (ix 3) -------- */
+ /* -------- 1,1x,11010 FCVTPS 2d_2d, 4s_4s, 2s_2s (ix 4) -------- */
+ /* -------- 1,1x,11011 FCVTZS 2d_2d, 4s_4s, 2s_2s (ix 5) -------- */
+ Bool isD = (size & 1) == 1;
+ if (bitQ == 0 && isD) return False; // implied 1d case
+
+ IRRoundingMode irrm = 8; /*impossible*/
+ HChar ch = '?';
+ switch (ix) {
+ case 1: ch = 'n'; irrm = Irrm_NEAREST; break;
+ case 2: ch = 'm'; irrm = Irrm_NegINF; break;
+ case 3: ch = 'a'; irrm = Irrm_NEAREST; break; /* kludge? */
+ case 4: ch = 'p'; irrm = Irrm_PosINF; break;
+ case 5: ch = 'z'; irrm = Irrm_ZERO; break;
+ default: vassert(0);
+ }
+ IROp cvt = Iop_INVALID;
+ if (bitU == 1) {
+ cvt = isD ? Iop_F64toI64U : Iop_F32toI32U;
+ } else {
+ cvt = isD ? Iop_F64toI64S : Iop_F32toI32S;
+ }
+ if (isD) {
+ for (UInt i = 0; i < 2; i++) {
+ putQRegLane(dd, i, binop(cvt, mkU32(irrm),
+ getQRegLane(nn, i, Ity_F64)));
+ }
+ } else {
+ UInt n = bitQ==1 ? 4 : 2;
+ for (UInt i = 0; i < n; i++) {
+ putQRegLane(dd, i, binop(cvt, mkU32(irrm),
+ getQRegLane(nn, i, Ity_F32)));
+ }
+ if (bitQ == 0)
+ putQRegLane(dd, 1, mkU64(0)); // zero out lanes 2 and 3
+ }
+ const HChar* arr = nameArr_Q_SZ(bitQ, size);
+ DIP("fcvt%c%c %s.%s, %s.%s\n", ch, bitU == 1 ? 'u' : 's',
+ nameQReg128(dd), arr, nameQReg128(nn), arr);
+ return True;
+ }
+
if (size == X10 && opcode == BITS5(1,1,1,0,0)) {
/* -------- 0,10,11100: URECPE 4s_4s, 2s_2s -------- */
/* -------- 1,10,11100: URSQRTE 4s_4s, 2s_2s -------- */
|
|
From: Philippe W. <phi...@sk...> - 2015-03-30 18:26:20
|
On Mon, 2015-03-30 at 15:10 -0300, Andres Tiraboschi wrote: > I was making a tool for valgrind for measuring things related with threads. > I made it work but for that, surprisingly I had to replace mallocs and > frees with VG_(needs_malloc_replacement). > If I don't do this I get a segmentation fault. > > In drd if I make that the tool doens't replace the mallocs and frees > there is the same segmentation fault. > > I couldn't find any documentation about this, so I don't know if this > is supposed to be like this or is a bug. No, it is not mandatory to replace (client) malloc/free. There are several tools that do not replace malloc/free. E.g. cachegrind and callgrind are not replacing client malloc/free. Philippe |
|
From: Andres T. <and...@ta...> - 2015-03-30 18:10:38
|
I was making a tool for valgrind for measuring things related with threads. I made it work but for that, surprisingly I had to replace mallocs and frees with VG_(needs_malloc_replacement). If I don't do this I get a segmentation fault. In drd if I make that the tool doens't replace the mallocs and frees there is the same segmentation fault. I couldn't find any documentation about this, so I don't know if this is supposed to be like this or is a bug. Regard, Andres. |
|
From: 林作健 <man...@gm...> - 2015-03-30 15:59:28
|
Hi,
I am trying to make up a arm-linux-androideabi vm using libVEX. And I
have to do a bit of modification.
Statements like Ist_StoreG, I have to add Xin_StoreG for isel, and code
emit.
And expressions like Iop_GetElem32X2, I have to handle it correctly in isel.
Some tricky arm instruction like LLSC(ldrex, strex), I have to add new
helper functions. And these functions involve hash table data structure.
Because the addresses have to store in { address, tid } pair. So my help
functions use c++ 11 unordered_map. But as for the mutex, I may discard
pthread_mutex eventually, and use gcc atomic operations to implement a spin
lock instead.
After my job is done, should I post my patch to libVEX? I don't think any
one like it, because c++11 unordered_map involved . Implementing a C hash
table? Maybe glib GHashtable? Maybe an option.
What is a arm-linux-andriodeabi vm? Look at intel's libhoudini. That is
what it is. Just Google it .
--
Lin Zuojian
|
|
From: Petar J. <mip...@gm...> - 2015-03-30 13:28:22
|
Hi Julian,
You will want to add a change like this one as well:
Index: memcheck/tests/vbit-test/irops.c
===================================================================
--- memcheck/tests/vbit-test/irops.c (revision 15050)
+++ memcheck/tests/vbit-test/irops.c (working copy)
@@ -259,6 +259,12 @@
{ DEFOP(Iop_RecpExpF64, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RecpExpF32, UNDEF_UNKNOWN), },
+ /* ------------------ 16-bit scalar FP --------------------- */
+ { DEFOP(Iop_F16toF64, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F64toF16, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F16toF32, UNDEF_UNKNOWN), },
+ { DEFOP(Iop_F32toF16, UNDEF_UNKNOWN), },
+
/* ------------------ 32-bit SIMD Integer ------------------ */
{ DEFOP(Iop_QAdd32S, UNDEF_UNKNOWN), },
{ DEFOP(Iop_QSub32S, UNDEF_UNKNOWN), },
Otherwise, build breaks at memcheck/tests/vbit-test/irops.c.
Regards,
Petar
On Mon, Mar 30, 2015 at 10:50 AM, <sv...@va...> wrote:
> Author: sewardj
> Date: Mon Mar 30 09:50:27 2015
> New Revision: 3110
>
> Log:
> Add IR level support for 16 bit floating point types (Ity_F16) and add
> four new IROps that use it:
> Iop_F16toF64, Iop_F64toF16, Iop_F16toF32, Iop_F32toF16.
>
>
> Modified:
> trunk/priv/ir_defs.c
> trunk/priv/ir_opt.c
> trunk/pub/libvex_ir.h
>
> Modified: trunk/priv/ir_defs.c
>
> ==============================================================================
> --- trunk/priv/ir_defs.c (original)
> +++ trunk/priv/ir_defs.c Mon Mar 30 09:50:27 2015
> @@ -54,6 +54,7 @@
> case Ity_I32: vex_printf( "I32"); break;
> case Ity_I64: vex_printf( "I64"); break;
> case Ity_I128: vex_printf( "I128"); break;
> + case Ity_F16: vex_printf( "F16"); break;
> case Ity_F32: vex_printf( "F32"); break;
> case Ity_F64: vex_printf( "F64"); break;
> case Ity_F128: vex_printf( "F128"); break;
> @@ -340,6 +341,11 @@
> case Iop_RecpExpF64: vex_printf("RecpExpF64"); return;
> case Iop_RecpExpF32: vex_printf("RecpExpF32"); return;
>
> + case Iop_F16toF64: vex_printf("F16toF64"); return;
> + case Iop_F64toF16: vex_printf("F64toF16"); return;
> + case Iop_F16toF32: vex_printf("F16toF32"); return;
> + case Iop_F32toF16: vex_printf("F32toF16"); return;
> +
> case Iop_QAdd32S: vex_printf("QAdd32S"); return;
> case Iop_QSub32S: vex_printf("QSub32S"); return;
> case Iop_Add16x2: vex_printf("Add16x2"); return;
> @@ -2802,7 +2808,12 @@
> case Iop_I64StoF32: BINARY(ity_RMode,Ity_I64, Ity_F32);
>
> case Iop_F32toF64: UNARY(Ity_F32, Ity_F64);
> + case Iop_F16toF64: UNARY(Ity_F16, Ity_F64);
> + case Iop_F16toF32: UNARY(Ity_F16, Ity_F32);
> +
> case Iop_F64toF32: BINARY(ity_RMode,Ity_F64, Ity_F32);
> + case Iop_F64toF16: BINARY(ity_RMode,Ity_F64, Ity_F16);
> + case Iop_F32toF16: BINARY(ity_RMode,Ity_F32, Ity_F16);
>
> case Iop_ReinterpI64asF64: UNARY(Ity_I64, Ity_F64);
> case Iop_ReinterpF64asI64: UNARY(Ity_F64, Ity_I64);
> @@ -3577,7 +3588,7 @@
> case Ity_INVALID: case Ity_I1:
> case Ity_I8: case Ity_I16: case Ity_I32:
> case Ity_I64: case Ity_I128:
> - case Ity_F32: case Ity_F64: case Ity_F128:
> + case Ity_F16: case Ity_F32: case Ity_F64: case Ity_F128:
> case Ity_D32: case Ity_D64: case Ity_D128:
> case Ity_V128: case Ity_V256:
> return True;
> @@ -4615,6 +4626,7 @@
> case Ity_I32: return 4;
> case Ity_I64: return 8;
> case Ity_I128: return 16;
> + case Ity_F16: return 2;
> case Ity_F32: return 4;
> case Ity_F64: return 8;
> case Ity_F128: return 16;
>
> Modified: trunk/priv/ir_opt.c
>
> ==============================================================================
> --- trunk/priv/ir_opt.c (original)
> +++ trunk/priv/ir_opt.c Mon Mar 30 09:50:27 2015
> @@ -6482,7 +6482,7 @@
> case Ity_I1: case Ity_I8: case Ity_I16:
> case Ity_I32: case Ity_I64: case Ity_I128:
> break;
> - case Ity_F32: case Ity_F64: case Ity_F128:
> + case Ity_F16: case Ity_F32: case Ity_F64: case Ity_F128:
> case Ity_V128: case Ity_V256:
> *hasVorFtemps = True;
> break;
>
> Modified: trunk/pub/libvex_ir.h
>
> ==============================================================================
> --- trunk/pub/libvex_ir.h (original)
> +++ trunk/pub/libvex_ir.h Mon Mar 30 09:50:27 2015
> @@ -225,6 +225,7 @@
> Ity_I32,
> Ity_I64,
> Ity_I128, /* 128-bit scalar */
> + Ity_F16, /* 16 bit float */
> Ity_F32, /* IEEE 754 float */
> Ity_F64, /* IEEE 754 double */
> Ity_D32, /* 32-bit Decimal floating point */
> @@ -759,6 +760,14 @@
> Iop_RecpExpF64, /* FRECPX d :: IRRoundingMode(I32) x F64 -> F64 */
> Iop_RecpExpF32, /* FRECPX s :: IRRoundingMode(I32) x F32 -> F32 */
>
> + /* ------------------ 16-bit scalar FP ------------------ */
> +
> + Iop_F16toF64, /* F16 -> F64 */
> + Iop_F64toF16, /* IRRoundingMode(I32) x F64 -> F16 */
> +
> + Iop_F16toF32, /* F16 -> F32 */
> + Iop_F32toF16, /* IRRoundingMode(I32) x F32 -> F16 */
> +
> /* ------------------ 32-bit SIMD Integer ------------------ */
>
> /* 32x1 saturating add/sub (ok, well, not really SIMD :) */
>
>
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming The Go Parallel Website,
> sponsored
> by Intel and developed in partnership with Slashdot Media, is your hub for
> all
> things parallel software development, from weekly thought leadership blogs
> to
> news, videos, case studies, tutorials and more. Take a look and join the
> conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> Valgrind-developers mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-developers
>
|
|
From: Ivo R. <iv...@iv...> - 2015-03-30 09:14:13
|
Dear developers, Please could you shed some light on why setHelperAnns() in mc_translate.c annotates all memcheck's dirty helpers to indicate that IP and SP could be read? I guess the reason is that IP and SP are required for stack unwinding in case one of these dirty helpers detect a problem which needs to be reported. But if this is so, then why also FP is not present in annotations? FP is required on many arches for stack unwinding as well (even with help of debug info from DWARF). [Other tools do not use SP in annotating their dirty helpers, only memcheck does.] Kind regards, I. |
|
From: <sv...@va...> - 2015-03-30 09:11:46
|
Author: sewardj
Date: Mon Mar 30 10:11:34 2015
New Revision: 15050
Log:
arm64: add test cases for
FCVT{N,M,A,P,Z}{S,U} d_d, s_s
FCVTN 4h/8h_4s, 2s/4s_2d
FCVTL 4s_4h/8h, 2d_2s/4s
FCVT Sd, Hn
FCVT Dd, Hn
FCVT Hd, Sn
FCVT Hd, Dn
Modified:
trunk/none/tests/arm64/fp_and_simd.c
trunk/none/tests/arm64/fp_and_simd.stdout.exp
Modified: trunk/none/tests/arm64/fp_and_simd.c
==============================================================================
--- trunk/none/tests/arm64/fp_and_simd.c (original)
+++ trunk/none/tests/arm64/fp_and_simd.c Mon Mar 30 10:11:34 2015
@@ -5029,22 +5029,22 @@
// ======================== CONV ========================
// fcvt s_h,d_h,h_s,d_s,h_d,s_d (fp convert, scalar)
- if (0) test_fcvt_s_h(TyHF);
- if (0) test_fcvt_d_h(TyHF);
- if (0) test_fcvt_h_s(TySF);
+ if (1) test_fcvt_s_h(TyHF);
+ if (1) test_fcvt_d_h(TyHF);
+ if (1) test_fcvt_h_s(TySF);
if (1) test_fcvt_d_s(TySF);
- if (0) test_fcvt_h_d(TyDF);
+ if (1) test_fcvt_h_d(TyDF);
if (1) test_fcvt_s_d(TyDF);
// fcvtl{2} 4s/4h, 4s/8h, 2d/2s, 2d/4s (float convert to longer form)
- if (0) test_fcvtl_4s_4h(TyHF);
- if (0) test_fcvtl_4s_8h(TyHF);
- if (0) test_fcvtl_2d_2s(TySF);
- if (0) test_fcvtl_2d_4s(TySF);
+ if (1) test_fcvtl_4s_4h(TyHF);
+ if (1) test_fcvtl_4s_8h(TyHF);
+ if (1) test_fcvtl_2d_2s(TySF);
+ if (1) test_fcvtl_2d_4s(TySF);
// fcvtn{2} 4h/4s, 8h/4s, 2s/2d, 4s/2d (float convert to narrower form)
- if (0) test_fcvtn_4h_4s(TySF);
- if (0) test_fcvtn_8h_4s(TySF);
+ if (1) test_fcvtn_4h_4s(TySF);
+ if (1) test_fcvtn_8h_4s(TySF);
if (1) test_fcvtn_2s_2d(TyDF);
if (1) test_fcvtn_4s_2d(TyDF);
@@ -5054,10 +5054,10 @@
// fcvtau 2d,4s,2s
// fcvtas w_s,x_s,w_d,x_d
// fcvtau w_s,x_s,w_d,x_d
- if (0) test_fcvtas_d_d(TyDF);
- if (0) test_fcvtau_d_d(TyDF);
- if (0) test_fcvtas_s_s(TySF);
- if (0) test_fcvtau_s_s(TySF);
+ if (1) test_fcvtas_d_d(TyDF);
+ if (1) test_fcvtau_d_d(TyDF);
+ if (1) test_fcvtas_s_s(TySF);
+ if (1) test_fcvtau_s_s(TySF);
if (0) test_fcvtas_2d_2d(TyDF);
if (0) test_fcvtau_2d_2d(TyDF);
if (0) test_fcvtas_4s_4s(TySF);
@@ -5079,10 +5079,10 @@
// fcvtmu 2d,4s,2s
// fcvtms w_s,x_s,w_d,x_d
// fcvtmu w_s,x_s,w_d,x_d
- if (0) test_fcvtms_d_d(TyDF);
- if (0) test_fcvtmu_d_d(TyDF);
- if (0) test_fcvtms_s_s(TySF);
- if (0) test_fcvtmu_s_s(TySF);
+ if (1) test_fcvtms_d_d(TyDF);
+ if (1) test_fcvtmu_d_d(TyDF);
+ if (1) test_fcvtms_s_s(TySF);
+ if (1) test_fcvtmu_s_s(TySF);
if (0) test_fcvtms_2d_2d(TyDF);
if (0) test_fcvtmu_2d_2d(TyDF);
if (0) test_fcvtms_4s_4s(TySF);
@@ -5104,10 +5104,10 @@
// fcvtnu 2d,4s,2s
// fcvtns w_s,x_s,w_d,x_d
// fcvtnu w_s,x_s,w_d,x_d
- if (0) test_fcvtns_d_d(TyDF);
- if (0) test_fcvtnu_d_d(TyDF);
- if (0) test_fcvtns_s_s(TySF);
- if (0) test_fcvtnu_s_s(TySF);
+ if (1) test_fcvtns_d_d(TyDF);
+ if (1) test_fcvtnu_d_d(TyDF);
+ if (1) test_fcvtns_s_s(TySF);
+ if (1) test_fcvtnu_s_s(TySF);
if (0) test_fcvtns_2d_2d(TyDF);
if (0) test_fcvtnu_2d_2d(TyDF);
if (0) test_fcvtns_4s_4s(TySF);
@@ -5129,10 +5129,10 @@
// fcvtpu 2d,4s,2s
// fcvtps w_s,x_s,w_d,x_d
// fcvtpu w_s,x_s,w_d,x_d
- if (0) test_fcvtps_d_d(TyDF);
- if (0) test_fcvtpu_d_d(TyDF);
- if (0) test_fcvtps_s_s(TySF);
- if (0) test_fcvtpu_s_s(TySF);
+ if (1) test_fcvtps_d_d(TyDF);
+ if (1) test_fcvtpu_d_d(TyDF);
+ if (1) test_fcvtps_s_s(TySF);
+ if (1) test_fcvtpu_s_s(TySF);
if (0) test_fcvtps_2d_2d(TyDF);
if (0) test_fcvtpu_2d_2d(TyDF);
if (0) test_fcvtps_4s_4s(TySF);
@@ -5154,10 +5154,10 @@
// fcvtzu 2d,4s,2s
// fcvtzs w_s,x_s,w_d,x_d
// fcvtzu w_s,x_s,w_d,x_d
- if (0) test_fcvtzs_d_d(TyDF);
- if (0) test_fcvtzu_d_d(TyDF);
- if (0) test_fcvtzs_s_s(TySF);
- if (0) test_fcvtzu_s_s(TySF);
+ if (1) test_fcvtzs_d_d(TyDF);
+ if (1) test_fcvtzu_d_d(TyDF);
+ if (1) test_fcvtzs_s_s(TySF);
+ if (1) test_fcvtzu_s_s(TySF);
if (0) test_fcvtzs_2d_2d(TyDF);
if (0) test_fcvtzu_2d_2d(TyDF);
if (0) test_fcvtzs_4s_4s(TySF);
Modified: trunk/none/tests/arm64/fp_and_simd.stdout.exp
==============================================================================
--- trunk/none/tests/arm64/fp_and_simd.stdout.exp (original)
+++ trunk/none/tests/arm64/fp_and_simd.stdout.exp Mon Mar 30 10:11:34 2015
@@ -26672,1968 +26672,1999 @@
frsqrts v2.2d, v11.2d, v29.2d b4a8a53d8d8159210126f545c32d31e7 61c1915ca8e177744c423ad40a20f7aa 25970917d9b9f0c9f32ffeb8d9f95823 c7594af126e7ef217f723a19ab5089b4 61c1915ca8e177744c423ad40a20f7aa 25970917d9b9f0c9f32ffeb8d9f95823 fpsr=00000000
frsqrts v2.4s, v11.4s, v29.4s 85c59da30ad4b94cd3ad825730a37884 d547c7321eb2846690916818489917b9 4d3be6cc496d83209b5a16fcc83a09a1 6292a29e3fc000003fc0000050de81fd d547c7321eb2846690916818489917b9 4d3be6cc496d83209b5a16fcc83a09a1 fpsr=00000000
frsqrts v2.2s, v11.2s, v29.2s 28f42e126c05df5974181c9bafb9aa9d 41dccb603f802ea90a00191d9d1038f1 136d46a6a9bc09b65e63a70e55585275 00000000000000003fc000003fc00000 41dccb603f802ea90a00191d9d1038f1 136d46a6a9bc09b65e63a70e55585275 fpsr=00000000
-fcvt d7, s16 01a81bded64a515cc75a08e6e322ccc5 09f6613a2e7ef94f9c8592b6ad395fe5 0000000000000000bda72bfca0000000 09f6613a2e7ef94f9c8592b6ad395fe5 fpsr=00000000
-fcvt s7, d16 33fdc565c214d722ca907291430c7a79 d355f09fe02a4ef9abed0d01f99e382e 00000000000000000000000080000000 d355f09fe02a4ef9abed0d01f99e382e fpsr=00000000
-fcvtn v22.2s, v23.2d 094ca41bcbf9feeac4e345eed6f6ba72 1ae5cbac08a9db9c8bab0a76d0bb3db4 00000000000000000000000080000000 1ae5cbac08a9db9c8bab0a76d0bb3db4 fpsr=00000000
-fcvtn2 v22.4s, v23.2d e47518df54db23931734e2dffbc0ef91 3d87543f07ddff189b9fe8f6906fcd56 2c3aa1f8800000001734e2dffbc0ef91 3d87543f07ddff189b9fe8f6906fcd56 fpsr=00000000
-fcvtas w21, s10 23578293ba98a8fc2264a842124976b4 9c1beb393ca41b4d3ba807619b9c49f6 23578293ba98a8fc2264a842124976b4 70e6391339a544630000000000000000 fpsr=00000000
-fcvtau w21, s10 26d442155f11ec074650f7f87c73b2bc 9781ee7a07df8e1bcca8c89751211072 26d442155f11ec074650f7f87c73b2bc 7e8997ab532ec7f100000000ffffffff fpsr=00000000
-fcvtas x21, s10 4ecab746a2265092e2db30e2981c0089 8f99bfe2c96eb961ad7d8a7810dd82ab 4ecab746a2265092e2db30e2981c0089 384ef35b147b31e80000000000000000 fpsr=00000000
-fcvtau x21, s10 fa1a4107e4b7337e56e4b2dec726c2fa e343be51e131fb003f08ade43bb1ff81 fa1a4107e4b7337e56e4b2dec726c2fa fe14ac01dc6ce2270000000000000000 fpsr=00000000
-fcvtas w21, d10 8ba4403684a4f5ab034bdecc686f57f1 f45e4aa7b008b4d9e02992ba2f7de8d4 8ba4403684a4f5ab034bdecc686f57f1 31bd237e09e13b900000000000000000 fpsr=00000000
-fcvtau w21, d10 604815b3e2cdf7f948ef138edbd81f4d 21ccc3c395d344caf3c099dc4e219d84 604815b3e2cdf7f948ef138edbd81f4d 3027b6b2feba9b0200000000ffffffff fpsr=00000000
-fcvtas x21, d10 d9e61f605f12984886b1b10381417bed cb6b8987f0710cb4d5ad2028f77d7d70 d9e61f605f12984886b1b10381417bed 5c33c87d18d6635c0000000000000000 fpsr=00000000
-fcvtau x21, d10 575ebf1c5a5238771c72190ab989cbb2 501cfdd122c46c76e8d0897f8b71e87a 575ebf1c5a5238771c72190ab989cbb2 14c1b6bfb917f27f0000000000000000 fpsr=00000000
-fcvtms w21, s10 398f54c6346f38686a10aa85e3926d7c 13bf7f828aaac2f28c0834c169dc3e80 398f54c6346f38686a10aa85e3926d7c b8b1e258405ba84b0000000080000000 fpsr=00000000
-fcvtmu w21, s10 e05b3e404b47f7f9d16cc452603bc32b 71346d7a88047007203680cef2a0e063 e05b3e404b47f7f9d16cc452603bc32b a9e3ac270e83e6a000000000ffffffff fpsr=00000000
-fcvtms x21, s10 aaa0de6802bbd60bb065c8528f632d9f cc5b2a997db3d694043bcd86849b2d03 aaa0de6802bbd60bb065c8528f632d9f fa3f931fb6ab347effffffffffffffff fpsr=00000000
-fcvtmu x21, s10 831313bfc895537b98f57bc982af8640 01d77486fe17d17262ee15ec27590158 831313bfc895537b98f57bc982af8640 2d18be45c9f771320000000000000000 fpsr=00000000
-fcvtms w21, d10 f73e8accca8a479a3d45eb7749ba4afa eba1fd97c425e23b3247059f18557fac f73e8accca8a479a3d45eb7749ba4afa a50bbdba9b7fee070000000000000000 fpsr=00000000
-fcvtmu w21, d10 87baeea0e27412d2520b7c6f3b9dda11 c9f48be8f9df62144a4d2d158be16055 87baeea0e27412d2520b7c6f3b9dda11 c2f8f35d8a220add00000000ffffffff fpsr=00000000
-fcvtms x21, d10 9469a01a7032150338278f92b7389464 fbb27f57fc24b2de0be1ef2ee1dd0533 9469a01a7032150338278f92b7389464 e2bfbd10f8c225940000000000000000 fpsr=00000000
-fcvtmu x21, d10 7c29ff1bd5a3b00d4e7883c11e6adad5 e2ba39c52dd63179d4e3abca7929cd26 7c29ff1bd5a3b00d4e7883c11e6adad5 673f7db2453da00bffffffffffffffff fpsr=00000000
-fcvtns w21, s10 a2db6b8470a941cff4e0b9dacf150c42 deeb1712edd340c50633bfc9b4a4180d a2db6b8470a941cff4e0b9dacf150c42 b15a9322d074db230000000080000000 fpsr=00000000
-fcvtnu w21, s10 635f4533a2222a2b8b3d8fbe2a17898c 4d277b1e9bfc3da200b18e0bf13047ca 635f4533a2222a2b8b3d8fbe2a17898c 1fee5d41f94734bd0000000000000000 fpsr=00000000
-fcvtns x21, s10 2194ec09c9efcbff7271684d9052b194 914cc5c897318bf0223d756f91abb93b 2194ec09c9efcbff7271684d9052b194 11dc3eef21960db70000000000000000 fpsr=00000000
-fcvtnu x21, s10 3b5cc0e548f0832d0a5aa16660a4e538 0a3b54f24252878eccb7d6d7f2f6cf41 3b5cc0e548f0832d0a5aa16660a4e538 e704930ca741c5f2ffffffffffffffff fpsr=00000000
-fcvtns w21, d10 129622a97c05b293b2d99cebfbee8458 16d4887afb3f935e5ffe102176f2e8bc 129622a97c05b293b2d99cebfbee8458 0246be78eb28bd4e0000000000000000 fpsr=00000000
-fcvtnu w21, d10 05217134c70db812caceb8bac010eed6 17f7c14223d80f3e3bf4842e7d7d648c 05217134c70db812caceb8bac010eed6 74de0e6589eaf68a0000000000000000 fpsr=00000000
-fcvtns x21, d10 6d84602819fc5a0fbe7791de6677a391 a9f6775224aec8b94364f35899c27d9b 6d84602819fc5a0fbe7791de6677a391 c0ad581d207accdb0000000000000000 fpsr=00000000
-fcvtnu x21, d10 775ac50d3d8dd4b14b68971191c206ab 27a23c022b2ccd6b38d407974c1348f5 775ac50d3d8dd4b14b68971191c206ab 486eaf3dee9f98e5ffffffffffffffff fpsr=00000000
-fcvtps w21, s10 955b4ed1f069dd043fa7f7a75f3dedb9 91b03e0918aef9c56ec98cb0f94d2e3c 955b4ed1f069dd043fa7f7a75f3dedb9 6d0174a35337bc87000000007fffffff fpsr=00000000
-fcvtpu w21, s10 28655d549171d6e8fc1410802fc7b69d abb435d389cc6aa693e2005b46d80f74 28655d549171d6e8fc1410802fc7b69d 8f59527580861e3d0000000000000001 fpsr=00000000
-fcvtps x21, s10 ab717a9b253f48f41ac66af4c2f8cd10 40f14078237abe27d137e39cad5f21db ab717a9b253f48f41ac66af4c2f8cd10 2a188c161e8516e2ffffffffffffff84 fpsr=00000000
-fcvtpu x21, s10 1be574e6060d2b88518d84de9f29455d ba68c18c1c84f2e947eb70d0872508c7 1be574e6060d2b88518d84de9f29455d 5a806b15ca511db90000000000000000 fpsr=00000000
-fcvtps w21, d10 f63a2c084d5eb546485a8e23f5c25917 78f916eed4ca64cc55dc06d7330b2117 f63a2c084d5eb546485a8e23f5c25917 7e714f53e5c994a0000000007fffffff fpsr=00000000
-fcvtpu w21, d10 9f5201e15a14460d5f0deaa327a3681f da84a280a92b77b05bec059012f1cead 9f5201e15a14460d5f0deaa327a3681f 730b53518d0e3ebc00000000ffffffff fpsr=00000000
-fcvtps x21, d10 41e9c221fd898874baf9cedd83b66e67 1caa09d8034ac0e161327f6b0c454834 41e9c221fd898874baf9cedd83b66e67 d4468238472bfe340000000000000000 fpsr=00000000
-fcvtpu x21, d10 0c07d8b030c2f9fad2e4c09ce73c6226 077a4bae058dc7320df8ca32636e2f6f 0c07d8b030c2f9fad2e4c09ce73c6226 22e3f075e84ce6550000000000000000 fpsr=00000000
-fcvtzs w21, s10 9bc0440fa1b72920018d3bae9d6209ca 8f1cfbcb9c44261baab3b7c464ee6287 9bc0440fa1b72920018d3bae9d6209ca bbc2faeace5155ff0000000000000000 fpsr=00000000
-fcvtzu w21, s10 4ff2641cb04979c8a9d4a0f40507c333 1370780f2a4f3d7e9744a50170a7405c 4ff2641cb04979c8a9d4a0f40507c333 01c202755b1aab120000000000000000 fpsr=00000000
-fcvtzs x21, s10 877e9ab8be5648d02a984e4c7f0cf141 f356235a0e8e6b39358bf5c9e6772ace 877e9ab8be5648d02a984e4c7f0cf141 54c567f8ef87486e7fffffffffffffff fpsr=00000000
-fcvtzu x21, s10 a44446c32abef619e2bba6966c51f2d3 90ad5a8ba9e1102de36806fb273f7fbd a44446c32abef619e2bba6966c51f2d3 13aa8951e8788df3ffffffffffffffff fpsr=00000000
-fcvtzs w21, d10 0524c71d5463e483341b07b42cb627cb 495680845a288c3a01bb387992df9f09 0524c71d5463e483341b07b42cb627cb 9e50c961a9cdd9800000000000000000 fpsr=00000000
-fcvtzu w21, d10 0afe7da69d2471ed7d9ad1851d1bef07 7e32f22381434040f064ec218737eb91 0afe7da69d2471ed7d9ad1851d1bef07 569887088f658df700000000ffffffff fpsr=00000000
-fcvtzs x21, d10 14b2c93d64e0fd391f1665e8a160aa68 901f124a7f118c1f0f4381d46626c237 14b2c93d64e0fd391f1665e8a160aa68 821f0ac40979e9450000000000000000 fpsr=00000000
-fcvtzu x21, d10 defe40d7b373ceb7be375772918e85d9 4da2c476be7da12afaf66e8b7c551eba defe40d7b373ceb7be375772918e85d9 b427a019edcd94f30000000000000000 fpsr=00000000
-scvtf v10.2d, v21.2d c9afdaab7d4a68e75e22cfdb654e9358 254a29e74543901c3c411d9272dd1deb 43c2a514f3a2a1c843ce208ec9396e8f 254a29e74543901c3c411d9272dd1deb fpsr=00000000
-ucvtf v10.2d, v21.2d b01242a63e74ba914ee248ef44454c95 d2dc74f71a16ce7ea89ae6bbca5660d1 43ea5b8e9ee342da43e5135cd7794acc d2dc74f71a16ce7ea89ae6bbca5660d1 fpsr=00000000
-scvtf v10.4s, v21.4s f306d8a855d22393ee58238e8d54116d b43803869ed3bc329be028e8e59e474c ce978ff9cec25888cec83faecdd30dc6 b43803869ed3bc329be028e8e59e474c fpsr=00000000
-ucvtf v10.4s, v21.4s f36dfb90234303ce9f64bf98a05b41c3 293e3973305db91677f543f72296313d 4e24f8e64e4176e44eefea884e0a58c5 293e3973305db91677f543f72296313d fpsr=00000000
-scvtf v10.2s, v21.2s 0f250b4007a9ba23c0e67cecde3a3c76 94ce739f3193250c9cb798c9e21e7e81 0000000000000000cec690cecdef0c0c 94ce739f3193250c9cb798c9e21e7e81 fpsr=00000000
-ucvtf v10.2s, v21.2s a70f689661e3a970b2beba6ba7d16366 509d127629b5b369a73008314d68046a 00000000000000004f2730084e9ad009 509d127629b5b369a73008314d68046a fpsr=00000000
-scvtf s7, w15, #1 77f618cb4910e97025ad3d75f9f6e079 10af938f7b27b1c93974dc99e185e8af 000000000000000000000000cd73d0bb 4c79035d89fbc7113974dc99e185e8af fpsr=00000000
-scvtf s7, w15, #16 8ab15b774f70471fe4afe3939f6dd875 e50654dbd2dad8fdeffbeed9bda9c5a1 000000000000000000000000c684ac75 48f1134503a1b00aeffbeed9bda9c5a1 fpsr=00000000
-scvtf s7, w15, #32 eaae3b599cb32c5743185b6d9fab4a3e dfd6cbd7c72a1db21d20e84d4b4cb558 0000000000000000000000003e96996b 185209cccb52ea731d20e84d4b4cb558 fpsr=00000000
-scvtf d7, w15, #1 f6cd19538fbaf8f8a2c603e15a9198b3 5e005761bbf5e2c923c32dd3ec5019b4 0000000000000000c1a3afe64c000000 1c7d43d142efd22e23c32dd3ec5019b4 fpsr=00000000
-scvtf d7, w15, #16 0fed544388650be1629a3ed0300021b6 c064595a0d1b872062c31a4bfe935094 0000000000000000c076caf6c0000000 b5522436c757ca1962c31a4bfe935094 fpsr=00000000
-scvtf d7, w15, #32 67e230a21d7e6a9739021197e4f6bbda ed6ceeb44c22c04398891817c38eb11b 0000000000000000bfce38a772800000 e5b463880e26881098891817c38eb11b fpsr=00000000
-scvtf s7, x15, #1 b25a3c184cfded10095e7196fb59b964 e86537c2d97bead78d90e16e5f64b272 000000000000000000000000de64de3d 631bf69d5bfdb2148d90e16e5f64b272 fpsr=00000000
-scvtf s7, x15, #32 02acde9ef977706a31b89b27a69baa14 c0702d563d88ac44b2cd8ccfe4d140e5 000000000000000000000000ce9a64e6 6c0367292df7a3e1b2cd8ccfe4d140e5 fpsr=00000000
+fcvt s7, h16 01a81bded64a515cc75a08e6e322ccc5 09f6613a2e7ef94f9c8592b6ad395fe5 00000000000000000000000043fca000 09f6613a2e7ef94f9c8592b6ad395fe5 fpsr=00000000
+fcvt d7, h16 33fdc565c214d722ca907291430c7a79 d355f09fe02a4ef9abed0d01f99e382e 00000000000000003fe0b80000000000 d355f09fe02a4ef9abed0d01f99e382e fpsr=00000000
+fcvt h7, s16 094ca41bcbf9feeac4e345eed6f6ba72 1ae5cbac08a9db9c8bab0a76d0bb3db4 0000000000000000000000000000fc00 1ae5cbac08a9db9c8bab0a76d0bb3db4 fpsr=00000000
+fcvt d7, s16 e47518df54db23931734e2dffbc0ef91 3d87543f07ddff189b9fe8f6906fcd56 0000000000000000ba0df9aac0000000 3d87543f07ddff189b9fe8f6906fcd56 fpsr=00000000
+fcvt h7, d16 23578293ba98a8fc2264a842124976b4 9c1beb393ca41b4d3ba807619b9c49f6 00000000000000000000000000000000 9c1beb393ca41b4d3ba807619b9c49f6 fpsr=00000000
+fcvt s7, d16 26d442155f11ec074650f7f87c73b2bc 9781ee7a07df8e1bcca8c89751211072 000000000000000000000000ff800000 9781ee7a07df8e1bcca8c89751211072 fpsr=00000000
+fcvtl v11.4s, v29.4h 4ecab746a2265092e2db30e2981c0089 8f99bfe2c96eb961ad7d8a7810dd82ab bdafa000b94f00003a1ba000b82ac000 8f99bfe2c96eb961ad7d8a7810dd82ab fpsr=00000000
+fcvtl2 v11.4s, v29.8h fa1a4107e4b7337e56e4b2dec726c2fa e343be51e131fb003f08ade43bb1ff81 c4686000bfca2000c4262000c7600000 e343be51e131fb003f08ade43bb1ff81 fpsr=00000000
+fcvtl v11.2d, v29.2s 8ba4403684a4f5ab034bdecc686f57f1 f45e4aa7b008b4d9e02992ba2f7de8d4 c4053257400000003defbd1a80000000 f45e4aa7b008b4d9e02992ba2f7de8d4 fpsr=00000000
+fcvtl2 v11.2d, v29.4s 604815b3e2cdf7f948ef138edbd81f4d 21ccc3c395d344caf3c099dc4e219d84 3c39987860000000baba689940000000 21ccc3c395d344caf3c099dc4e219d84 fpsr=00000000
+fcvtn v22.4h, v23.4s d9e61f605f12984886b1b10381417bed cb6b8987f0710cb4d5ad2028f77d7d70 0000000000000000fc00fc00fc00fc00 cb6b8987f0710cb4d5ad2028f77d7d70 fpsr=00000000
+fcvtn2 v22.8h, v23.4s 575ebf1c5a5238771c72190ab989cbb2 501cfdd122c46c76e8d0897f8b71e87a 7c000000fc0080001c72190ab989cbb2 501cfdd122c46c76e8d0897f8b71e87a fpsr=00000000
+fcvtn v22.2s, v23.2d 398f54c6346f38686a10aa85e3926d7c 13bf7f828aaac2f28c0834c169dc3e80 00000000000000000000000080000000 13bf7f828aaac2f28c0834c169dc3e80 fpsr=00000000
+fcvtn2 v22.4s, v23.2d e05b3e404b47f7f9d16cc452603bc32b 71346d7a88047007203680cef2a0e063 7f80000000000000d16cc452603bc32b 71346d7a88047007203680cef2a0e063 fpsr=00000000
+fcvtas d10, d21 aaa0de6802bbd60bb065c8528f632d9f cc5b2a997db3d694043bcd86849b2d03 00000000000000000000000000000000 cc5b2a997db3d694043bcd86849b2d03 fpsr=00000000
+fcvtau d21, d10 831313bfc895537b98f57bc982af8640 01d77486fe17d17262ee15ec27590158 0000000000000000ffffffffffffffff 01d77486fe17d17262ee15ec27590158 fpsr=00000000
+fcvtas s10, s21 f73e8accca8a479a3d45eb7749ba4afa eba1fd97c425e23b3247059f18557fac 00000000000000000000000000000000 eba1fd97c425e23b3247059f18557fac fpsr=00000000
+fcvtau s21, s10 87baeea0e27412d2520b7c6f3b9dda11 c9f48be8f9df62144a4d2d158be16055 00000000000000000000000000000000 c9f48be8f9df62144a4d2d158be16055 fpsr=00000000
+fcvtas w21, s10 9469a01a7032150338278f92b7389464 fbb27f57fc24b2de0be1ef2ee1dd0533 9469a01a7032150338278f92b7389464 e2bfbd10f8c225940000000000000000 fpsr=00000000
+fcvtau w21, s10 7c29ff1bd5a3b00d4e7883c11e6adad5 e2ba39c52dd63179d4e3abca7929cd26 7c29ff1bd5a3b00d4e7883c11e6adad5 673f7db2453da00b0000000000000000 fpsr=00000000
+fcvtas x21, s10 a2db6b8470a941cff4e0b9dacf150c42 deeb1712edd340c50633bfc9b4a4180d a2db6b8470a941cff4e0b9dacf150c42 b15a9322d074db23ffffffff6af3be00 fpsr=00000000
+fcvtau x21, s10 635f4533a2222a2b8b3d8fbe2a17898c 4d277b1e9bfc3da200b18e0bf13047ca 635f4533a2222a2b8b3d8fbe2a17898c 1fee5d41f94734bd0000000000000000 fpsr=00000000
+fcvtas w21, d10 2194ec09c9efcbff7271684d9052b194 914cc5c897318bf0223d756f91abb93b 2194ec09c9efcbff7271684d9052b194 11dc3eef21960db7000000007fffffff fpsr=00000000
+fcvtau w21, d10 3b5cc0e548f0832d0a5aa16660a4e538 0a3b54f24252878eccb7d6d7f2f6cf41 3b5cc0e548f0832d0a5aa16660a4e538 e704930ca741c5f20000000000000000 fpsr=00000000
+fcvtas x21, d10 129622a97c05b293b2d99cebfbee8458 16d4887afb3f935e5ffe102176f2e8bc 129622a97c05b293b2d99cebfbee8458 0246be78eb28bd4e0000000000000000 fpsr=00000000
+fcvtau x21, d10 05217134c70db812caceb8bac010eed6 17f7c14223d80f3e3bf4842e7d7d648c 05217134c70db812caceb8bac010eed6 74de0e6589eaf68a0000000000000000 fpsr=00000000
+fcvtms d10, d21 6d84602819fc5a0fbe7791de6677a391 a9f6775224aec8b94364f35899c27d9b 000000000000000000a79ac4ce13ecd8 a9f6775224aec8b94364f35899c27d9b fpsr=00000000
+fcvtmu d21, d10 775ac50d3d8dd4b14b68971191c206ab 27a23c022b2ccd6b38d407974c1348f5 00000000000000000000000000000000 27a23c022b2ccd6b38d407974c1348f5 fpsr=00000000
+fcvtms s10, s21 955b4ed1f069dd043fa7f7a75f3dedb9 91b03e0918aef9c56ec98cb0f94d2e3c 00000000000000000000000080000000 91b03e0918aef9c56ec98cb0f94d2e3c fpsr=00000000
+fcvtmu s21, s10 28655d549171d6e8fc1410802fc7b69d abb435d389cc6aa693e2005b46d80f74 00000000000000000000000000006c07 abb435d389cc6aa693e2005b46d80f74 fpsr=00000000
+fcvtms w21, s10 ab717a9b253f48f41ac66af4c2f8cd10 40f14078237abe27d137e39cad5f21db ab717a9b253f48f41ac66af4c2f8cd10 2a188c161e8516e200000000ffffff83 fpsr=00000000
+fcvtmu w21, s10 1be574e6060d2b88518d84de9f29455d ba68c18c1c84f2e947eb70d0872508c7 1be574e6060d2b88518d84de9f29455d 5a806b15ca511db90000000000000000 fpsr=00000000
+fcvtms x21, s10 f63a2c084d5eb546485a8e23f5c25917 78f916eed4ca64cc55dc06d7330b2117 f63a2c084d5eb546485a8e23f5c25917 7e714f53e5c994a08000000000000000 fpsr=00000000
+fcvtmu x21, s10 9f5201e15a14460d5f0deaa327a3681f da84a280a92b77b05bec059012f1cead 9f5201e15a14460d5f0deaa327a3681f 730b53518d0e3ebc0000000000000000 fpsr=00000000
+fcvtms w21, d10 41e9c221fd898874baf9cedd83b66e67 1caa09d8034ac0e161327f6b0c454834 41e9c221fd898874baf9cedd83b66e67 d4468238472bfe3400000000ffffffff fpsr=00000000
+fcvtmu w21, d10 0c07d8b030c2f9fad2e4c09ce73c6226 077a4bae058dc7320df8ca32636e2f6f 0c07d8b030c2f9fad2e4c09ce73c6226 22e3f075e84ce6550000000000000000 fpsr=00000000
+fcvtms x21, d10 9bc0440fa1b72920018d3bae9d6209ca 8f1cfbcb9c44261baab3b7c464ee6287 9bc0440fa1b72920018d3bae9d6209ca bbc2faeace5155ff0000000000000000 fpsr=00000000
+fcvtmu x21, d10 4ff2641cb04979c8a9d4a0f40507c333 1370780f2a4f3d7e9744a50170a7405c 4ff2641cb04979c8a9d4a0f40507c333 01c202755b1aab120000000000000000 fpsr=00000000
+fcvtns d10, d21 877e9ab8be5648d02a984e4c7f0cf141 f356235a0e8e6b39358bf5c9e6772ace 00000000000000000000000000000000 f356235a0e8e6b39358bf5c9e6772ace fpsr=00000000
+fcvtnu d21, d10 a44446c32abef619e2bba6966c51f2d3 90ad5a8ba9e1102de36806fb273f7fbd 00000000000000000000000000000000 90ad5a8ba9e1102de36806fb273f7fbd fpsr=00000000
+fcvtns s10, s21 0524c71d5463e483341b07b42cb627cb 495680845a288c3a01bb387992df9f09 00000000000000000000000000000000 495680845a288c3a01bb387992df9f09 fpsr=00000000
+fcvtnu s21, s10 0afe7da69d2471ed7d9ad1851d1bef07 7e32f22381434040f064ec218737eb91 00000000000000000000000000000000 7e32f22381434040f064ec218737eb91 fpsr=00000000
+fcvtns w21, s10 14b2c93d64e0fd391f1665e8a160aa68 901f124a7f118c1f0f4381d46626c237 14b2c93d64e0fd391f1665e8a160aa68 821f0ac40979e9450000000000000000 fpsr=00000000
+fcvtnu w21, s10 defe40d7b373ceb7be375772918e85d9 4da2c476be7da12afaf66e8b7c551eba defe40d7b373ceb7be375772918e85d9 b427a019edcd94f30000000000000000 fpsr=00000000
+fcvtns x21, s10 c9afdaab7d4a68e75e22cfdb654e9358 254a29e74543901c3c411d9272dd1deb c9afdaab7d4a68e75e22cfdb654e9358 0ba8ec1d70bd5f217fffffffffffffff fpsr=00000000
+fcvtnu x21, s10 b01242a63e74ba914ee248ef44454c95 d2dc74f71a16ce7ea89ae6bbca5660d1 b01242a63e74ba914ee248ef44454c95 e6834db0f029a9b00000000000000315 fpsr=00000000
+fcvtns w21, d10 f306d8a855d22393ee58238e8d54116d b43803869ed3bc329be028e8e59e474c f306d8a855d22393ee58238e8d54116d a69823b2cff1d2800000000080000000 fpsr=00000000
+fcvtnu w21, d10 f36dfb90234303ce9f64bf98a05b41c3 293e3973305db91677f543f72296313d f36dfb90234303ce9f64bf98a05b41c3 aac7cf036df53b710000000000000000 fpsr=00000000
+fcvtns x21, d10 0f250b4007a9ba23c0e67cecde3a3c76 94ce739f3193250c9cb798c9e21e7e81 0f250b4007a9ba23c0e67cecde3a3c76 52f0b18328144363ffffffffffff4c19 fpsr=00000000
+fcvtnu x21, d10 a70f689661e3a970b2beba6ba7d16366 509d127629b5b369a73008314d68046a a70f689661e3a970b2beba6ba7d16366 c50c7834fd82cca90000000000000000 fpsr=00000000
+fcvtps d10, d21 77f618cb4910e97025ad3d75f9f6e079 10af938f7b27b1c93974dc99e185e8af 00000000000000000000000000000001 10af938f7b27b1c93974dc99e185e8af fpsr=00000000
+fcvtpu d21, d10 8ab15b774f70471fe4afe3939f6dd875 e50654dbd2dad8fdeffbeed9bda9c5a1 00000000000000000000000000000000 e50654dbd2dad8fdeffbeed9bda9c5a1 fpsr=00000000
+fcvtps s10, s21 eaae3b599cb32c5743185b6d9fab4a3e dfd6cbd7c72a1db21d20e84d4b4cb558 00000000000000000000000000ccb558 dfd6cbd7c72a1db21d20e84d4b4cb558 fpsr=00000000
+fcvtpu s21, s10 f6cd19538fbaf8f8a2c603e15a9198b3 5e005761bbf5e2c923c32dd3ec5019b4 00000000000000000000000000000000 5e005761bbf5e2c923c32dd3ec5019b4 fpsr=00000000
+fcvtps w21, s10 0fed544388650be1629a3ed0300021b6 c064595a0d1b872062c31a4bfe935094 0fed544388650be1629a3ed0300021b6 b5522436c757ca190000000000000001 fpsr=00000000
+fcvtpu w21, s10 67e230a21d7e6a9739021197e4f6bbda ed6ceeb44c22c04398891817c38eb11b 67e230a21d7e6a9739021197e4f6bbda e5b463880e2688100000000000000000 fpsr=00000000
+fcvtps x21, s10 b25a3c184cfded10095e7196fb59b964 e86537c2d97bead78d90e16e5f64b272 b25a3c184cfded10095e7196fb59b964 631bf69d5bfdb2148000000000000000 fpsr=00000000
+fcvtpu x21, s10 02acde9ef977706a31b89b27a69baa14 c0702d563d88ac44b2cd8ccfe4d140e5 02acde9ef977706a31b89b27a69baa14 6c0367292df7a3e10000000000000000 fpsr=00000000
randV128: 1536 calls, 1585 iters
-scvtf s7, x15, #64 b6b7751284ce528411f0ee2c429eefc8 d46d3051d7286469671f791bb4b7b856 0000000000000000000000003ece3ef2 634d150be7f6bb57671f791bb4b7b856 fpsr=00000000
-scvtf d7, x15, #1 2f5d61564ee0f3400ae6cb833141e761 853ca193083c74280d6807322ff47ca3 0000000000000000439ad00e645fe8f9 a6d86025e6d85b560d6807322ff47ca3 fpsr=00000000
-scvtf d7, x15, #32 cb7c0348b78eb37c7b7a910dd263f2bf 32bddffc2fa43c5f038696f4b36aebad 0000000000000000418c34b7a59b575d 9586a9558c7ee2be038696f4b36aebad fpsr=00000000
-scvtf d7, x15, #64 edf5bac91db8f319c48ca0aa86e571c1 3bd04a6cac401bf0a95a8640a3f76654 0000000000000000bfd5a95e6fd70226 90364f7c39c8b16fa95a8640a3f76654 fpsr=00000000
-ucvtf s7, w15, #1 f2a8e6b9e23e13f746fb583aaca7c349 015443c3dff071b960c438f85c7c4c78 0000000000000000000000004e38f899 f8c7b27b4c95274960c438f85c7c4c78 fpsr=00000000
-ucvtf s7, w15, #16 3c75e8f8660072f660a91a9da4894936 e32b29e029949e9b88a40bfb40d9fdf9 0000000000000000000000004681b3fc 2c1b333025c7a42b88a40bfb40d9fdf9 fpsr=00000000
-ucvtf s7, w15, #32 2b3c1f6607dd70f6727446b2cf6b6267 0da3ed0492bd484ca76be116e50263af 0000000000000000000000003f650264 1dddece227b76dd6a76be116e50263af fpsr=00000000
-ucvtf d7, w15, #1 c685a83c75a8aa1102075e3cef48cd8c 7a870d3eaad6358b3b95c4f6b910293f 000000000000000041d7220527e00000 f3592ca24df6f3963b95c4f6b910293f fpsr=00000000
-ucvtf d7, w15, #16 94908953e7df9a87c5f135c59cbdbb5e 53602658167308c800f680c30605d609 00000000000000004098175824000000 0737889bb1293e9c00f680c30605d609 fpsr=00000000
-ucvtf d7, w15, #32 d5a5ef2947437a8e5109c5914b438b04 797bdda8c9f4638e65bc0d4aacc1fe9f 00000000000000003fe5983fd3e00000 17c7b1bb0bb1411b65bc0d4aacc1fe9f fpsr=00000000
-ucvtf s7, x15, #1 eba53b9ef5b2a905062f6f7f5cb8a05f 4bb79010223aa5bdcac8cc6c0d2502e3 0000000000000000000000005ecac8cc 83e807e2bb6b5bf2cac8cc6c0d2502e3 fpsr=00000000
-ucvtf s7, x15, #32 366ecb91520d88ce4242917130fd5750 2af6a26e82222e3590fb1c0a881142b3 0000000000000000000000004f10fb1c ac7cebf0223aec0290fb1c0a881142b3 fpsr=00000000
-ucvtf s7, x15, #64 14e102e4bd3376c767248e4526f212b5 741670a3478f5fd516335e027e651cf1 0000000000000000000000003db19af0 f161bcc49ffd542b16335e027e651cf1 fpsr=00000000
-ucvtf d7, x15, #1 e8de3d759706d3d2d4b3c3dc9f77306f 8cf95c8fd360977fbc50f1354e01f27b 000000000000000043d78a1e26a9c03e b279db409294f44dbc50f1354e01f27b fpsr=00000000
-ucvtf d7, x15, #32 0f44de253f6500cdead09216f96c125d cf7dc51286743711e334358259c52432 000000000000000041ec6686b04b38a5 50a2a7425cde2c48e334358259c52432 fpsr=00000000
-ucvtf d7, x15, #64 ebf544d4152f5c99085c5bd397b11761 9f830c0cbfad9e6deabe8bcbfe9111f6 00000000000000003fed57d1797fd222 2abd80ab5cbc5afceabe8bcbfe9111f6 fpsr=00000000
-scvtf s7, w15 dbd0d062794548168f357cf3d6269f5a 5ceb905ddee92c7132cd52ef9d4419a6 000000000000000000000000cec577cd a1aac75bf20fe04832cd52ef9d4419a6 fpsr=00000000
-scvtf d7, w15 40b4e1afcd882324de3b585618aa0b27 6495b1e4440942fe1a43ebcd96c09c24 0000000000000000c1da4fd8f7000000 7982d79a6ed64da21a43ebcd96c09c24 fpsr=00000000
-scvtf s7, x15 1a61d08250ed3ff402feb4464ae3fb4f 534787c2aa279e624e868e8182f8a985 0000000000000000000000005e9d0d1d e61a1305be1027724e868e8182f8a985 fpsr=00000000
-scvtf d7, x15 db2e4c18627584334bdf103a198e9606 9f9809a0556bb34e55d3dc3fceb9315a 000000000000000043d574f70ff3ae4c e85cf4ce1c15107255d3dc3fceb9315a fpsr=00000000
-ucvtf s7, w15 09de8684db81709a54c65c8962a1cb2a 2f0361cdbeeb085bf65f34d0ec99ec95 0000000000000000000000004f6c99ed de28dbd7e9c76883f65f34d0ec99ec95 fpsr=00000000
-ucvtf d7, w15 034fdda71af1630b7d93fa1385fcfd9b 6368ee284686fc688e08f6133d793b14 000000000000000041cebc9d8a000000 295e27fe830590868e08f6133d793b14 fpsr=00000000
-ucvtf s7, x15 2a62b16180a4be6427254ab8e27f893a 3c6e684ccf7d309eda9fb2ab1515d08f 0000000000000000000000005f5a9fb3 ddf763926c7ce086da9fb2ab1515d08f fpsr=00000000
-ucvtf d7, x15 399f29ed3191420728343433f5b81361 79982d6c027b9999997f3f7c5eb8d935 000000000000000043e32fe7ef8bd71b 7cee52193e572952997f3f7c5eb8d935 fpsr=00000000
-abs d22, d23 9a31961554c15557ea7772cf1dd75cef 52945ed4cbec5a2c47546e1851b32eb7 000000000000000047546e1851b32eb7 52945ed4cbec5a2c47546e1851b32eb7 fpsr=00000000
-neg d22, d23 203eb9ec158c86282458999ff777b942 28425d628bb1d33947ff9e5e4fe52ef6 0000000000000000b80061a1b01ad10a 28425d628bb1d33947ff9e5e4fe52ef6 fpsr=00000000
-abs v8.2d, v7.2d5b828af6a1aa639ef6603030b72f3ad2 5b828af6a1aa639e099fcfcf48d0c52e fpsr=00000000
-abs v8.4s, v7.4s19449f27f376c8cd8173235543b52cb7 19449f270c8937337e8cdcab43b52cb7 fpsr=00000000
-abs v8.2s, v7.2sd4503f7113ef82552a9bcd11cbb38b1d 00000000000000002a9bcd11344c74e3 fpsr=00000000
-abs v8.8h, v7.8h4cfe224bcf549761646e45fd74140298 4cfe224b30ac689f646e45fd74140298 fpsr=00000000
-abs v8.4h, v7.4hedebd1f1d380d56d1d0898d66a36df25 00000000000000001d08672a6a3620db fpsr=00000000
-abs v8.16b, v7.16b23b2da9eca4f06f64086d258d8736cbf 234e2662364f060a407a2e5828736c41 fpsr=00000000
-abs v8.8b, v7.8b5aefc88f609df877b904fd3eeb29f662 00000000000000004704033e15290a62 fpsr=00000000
-neg v8.2d, v7.2dff3f27ff4345756c749c2745ceb2ca0a 00c0d800bcba8a948b63d8ba314d35f6 fpsr=00000000
-neg v8.4s, v7.4s7c3e842c1d254a515d6d5c29ae6b31b3 83c17bd4e2dab5afa292a3d75194ce4d fpsr=00000000
-neg v8.2s, v7.2s3f876a509a1843a26091a7a6b6b17a5a 00000000000000009f6e585a494e85a6 fpsr=00000000
-neg v8.8h, v7.8hb3b766a867f92bdc6924147714def0fa 4c4999589807d42496dceb89eb220f06 fpsr=00000000
-neg v8.4h, v7.4h4368036f30a6d0796542af59f14fde8f 00000000000000009abe50a70eb12171 fpsr=00000000
-neg v8.16b, v7.16b5d39cde3a1fafcf73e0985087c609215 a3c7331d5f060409c2f77bf884a06eeb fpsr=00000000
-neg v8.8b, v7.8b6cc4503d64d07dd2e292a13fde6e5689 00000000000000001e6e5fc12292aa77 fpsr=00000000
-add d21, d22, d23 dca519bc28061d843bfb0fbb46d377e6 fe1b5890733dfc09bad18d228d4776ce 1979b49b9776a88b3760dc38deec4028 0000000000000000f232695b6c33b6f6 fe1b5890733dfc09bad18d228d4776ce 1979b49b9776a88b3760dc38deec4028 fpsr=00000000
-sub d21, d22, d23 ab688c672878b485c58cc12450aaff4b 3cc3f4c778e96d2e02234b59f45e8281 d7bbe2cca2c1cb702f8bf00b82078b25 0000000000000000d2975b4e7256f75c 3cc3f4c778e96d2e02234b59f45e8281 d7bbe2cca2c1cb702f8bf00b82078b25 fpsr=00000000
-add v9.2d, v7.2d, v8.2d 14251fc255311a8fe5e70767b3897a54 3a63e6fe70fa82ca477f15f9b9da9985 4e8906c0c62b9d592d661d616d6413d9 fpsr=00000000
-add v9.4s, v7.4s, v8.4s 951a66611bfcd72339b1cb41dec8e9f8 a4f9c1d8d52d37a044d1b766c77b2db8 3a142839f12a0ec37e8382a7a64417b0 fpsr=00000000
-add v9.2s, v7.2s, v8.2s 7a509624d165d2b8810227591424ed93 5c70f3897da4c0f26dd92dd58270bd6e 0000000000000000eedb552e9695ab01 fpsr=00000000
-add v9.8h, v7.8h, v8.8h a04818c58d01eb628807f1995be4d96a 5de7046b9c961b75b06571d010a1b98b fe2f1d30299706d7386c63696c8592f5 fpsr=00000000
-add v9.4h, v7.4h, v8.4h 425eb5dfc24761137bcf63cd162e5c9e 055dddbac51aaabb5823d9c2f3d4f2d0 0000000000000000d3f23d8f0a024f6e fpsr=00000000
-add v9.16b, v7.16b, v8.16b fed295ec468fd69de64a169e0b098732 10afc790ee272d3512a31ff511af99e0 0e815c7c34b603d2f8ed35931cb82012 fpsr=00000000
-add v9.8b, v7.8b, v8.8b d0c240474c0d4bb3b84401975e5ccb07 9a9e6ae86c92c537ec535c93afba3d3f 0000000000000000a4975d2a0d160846 fpsr=00000000
-sub v9.2d, v7.2d, v8.2d 152c9f2a69d91fe83a6e7d2393edf7e2 21c6ce9bf212f2f3508107a77059d04d f365d08e77c62cf5e9ed757c23942795 fpsr=00000000
-sub v9.4s, v7.4s, v8.4s 88f0fbb192e913ae1b55448d8e623d64 5504d25ef6737874211cb7aaf597aa18 33ec29539c759b3afa388ce398ca934c fpsr=00000000
-sub v9.2s, v7.2s, v8.2s f39fdddfc98cedc34cf26cbdd0536365 5603d7762626b1389e5067719c25e928 0000000000000000aea2054c342d7a3d fpsr=00000000
-sub v9.8h, v7.8h, v8.8h 18ec798564529c9c9d32f73398da2593 52d8c54c6eda36e9c63eceb095d4eebb c614b439f57865b3d6f42883030636d8 fpsr=00000000
-sub v9.4h, v7.4h, v8.4h ebaeb9b199c8a3b9ebea9209d65056bc 663f44dc236528daa4530293262a4854 000000000000000047978f76b0260e68 fpsr=00000000
-sub v9.16b, v7.16b, v8.16b c9e2849dfd0461ac83ca97a90e7dc8a1 0dd95c00f87c073ca5df7e24f28de955 bc09289d05885a70deeb19851cf0df4c fpsr=00000000
-sub v9.8b, v7.8b, v8.8b 6e67246485fb97e9115ebd5f2506ace5 2524777202b8b423970f184eff452101 00000000000000007a4fa51126c18be4 fpsr=00000000
-addhn v9.2s, v7.2d, v8.2d f6fc4100858666c0a2161e545f71920c ea7d5ccdb58e6f81a4f30bdbb176a17a 0000000000000000e1799dce47092a30 fpsr=00000000
-addhn2 v9.4s, v7.2d, v8.2d de3ee44cb1594e66a241319461266a76 f825348ce754d8295a79ed75cc2978c3 d66418d9fcbb1f0ade0cd008306b8567 fpsr=00000000
-addhn v9.4h, v7.4s, v8.4s 4c388708cb41f1cca56eb9a8754317be f7fff43f4076020a62b1bf4143180937 000000000000000044380bb70820b85b fpsr=00000000
-addhn2 v9.8h, v7.4s, v8.4s 43b53f7df76c19fed283c6dd308b502e 408b4153e4a51394811a8acf9abf38ab 8440dc11539ecb4a1b9ff198241fa648 fpsr=00000000
-addhn v9.8b, v7.8h, v8.8h 997ca3045ecc12318e45cc60e2a752b5 91bf67eed5704a5927204d2d4a325681 00000000000000002b0a345cb5192ca9 fpsr=00000000
-addhn2 v9.16b, v7.8h, v8.8h 6a4a5c995536fbb8e423e55acf1eaed6 27fa30aa884ee74e82d24027b79714dd 928ddde3662586c33cc3c6d8df41f842 fpsr=00000000
-subhn v9.2s, v7.2d, v8.2d 33bf7316906155c4416b89d69d5754f3 9e7bc401d1938a441d1dfa66a5f581c1 00000000000000009543af14244d8f6f fpsr=00000000
-subhn2 v9.4s, v7.2d, v8.2d d158503525e40169724c90be4e98954f f460ac4ee47935eee5d1767539330f0e dcf7a3e68c7b1a49266d919d068480e8 fpsr=00000000
-subhn v9.4h, v7.4s, v8.4s 7f74bb9187353f99a3d432de4807220c 83a7d0cb571348df279b0bbff8178e89 0000000000000000fbcc30217c394fef fpsr=00000000
-subhn2 v9.8h, v7.4s, v8.4s db51dda58cabb02760f209e050ab0a2d 0a2f78931d5a8288900b728ec5472ed2 d1226f51d0e68b63be8f98bb3b9d41d0 fpsr=00000000
-subhn v9.8b, v7.8h, v8.8h e10f3fca677b53c497750d4d8a6bbf94 a5b74da18b24053e2b8ec30de54a806e 00000000000000003bf2dc4e6b4aa53f fpsr=00000000
-subhn2 v9.16b, v7.8h, v8.8h eeabc83cadbe8b04940a96917a0c1103 cfdd58ce5627523165747645fe8674be 1e6f57382e207b9ce61f1d052540408c fpsr=00000000
-raddhn v9.2s, v7.2d, v8.2d bd04c3145269175903405cf70436301e 662001d691f948740bea652312425b04 00000000000000002324c4eb0f2ac21a fpsr=00000000
-raddhn2 v9.4s, v7.2d, v8.2d 6cd9d64eac521716f18779a76e6fad67 a5de1053b31228fb4900c86f88a5e664 12b7e6a23a8842178211664f652181b2 fpsr=00000000
-raddhn v9.4h, v7.4s, v8.4s 77c80bc46f310c6cca2b65ae5c1d7840 2a55afbf8ec79397aca437d523b524df 0000000000000000a21efdf976d07fd3 fpsr=00000000
-raddhn2 v9.8h, v7.4s, v8.4s ba4fca30ae9bd76f5a5df8f6d387e2ec f1a46475595089fb20a4abdf07588759 abf407ec7b03dae07857b66ea1f307d4 fpsr=00000000
-raddhn v9.8b, v7.8h, v8.8h 72cedb2ddf08b911cf296b4936d39c8d 57ca1aafa6c26abaf2af7cf8ba55df93 0000000000000000cbf68624c2e8f17c fpsr=00000000
-raddhn2 v9.16b, v7.8h, v8.8h 3c826835d6cd5024b48056514a09b626 18a519886a14f845ce53636a20525c31 5582414883ba6a12abe651357c6bd788 fpsr=00000000
-rsubhn v9.2s, v7.2d, v8.2d 148af8a3c8219f5cf72fb29a340ea099 4ff308fbfb1d52f0c1ff78607dd790b4 0000000000000000c497efa835303a3a fpsr=00000000
-rsubhn2 v9.4s, v7.2d, v8.2d 56e474b2481b064ae3e4d78d79a92ba9 7b53f1e10d94faed370134e376496980 db9082d1ace3a2aafeb37b799b3cf560 fpsr=00000000
-rsubhn v9.4h, v7.4s, v8.4s bf70247b4db14560262f7e75fc8087f8 78443cf6b30dcf4ffd886fdf10ee3ad6 0000000000000000472c9aa328a7eb92 fpsr=00000000
-rsubhn2 v9.8h, v7.4s, v8.4s 6bebb2fa29ba7cf3cb7ebf7d031a4508 8124b2d3630212073fa2621faeeeb1da eac7c6b88bdc542c56b1780da11c64f1 fpsr=00000000
-rsubhn v9.8b, v7.8h, v8.8h d8f4250992ec2d33401f13af32de563d 34327af4f2c664e9893ea54c1650e18d 0000000000000000a5aaa0c8b76e1d75 fpsr=00000000
-rsubhn2 v9.16b, v7.8h, v8.8h e10ae6629cde3734504153f58d1109d9 8d8c1eb39292c6a7c92b31f16bf839d3 53c80a71872221d097d58cc632bd28d0 fpsr=00000000
+fcvtps w21, d10 b6b7751284ce528411f0ee2c429eefc8 d46d3051d7286469671f791bb4b7b856 b6b7751284ce528411f0ee2c429eefc8 634d150be7f6bb570000000000000001 fpsr=00000000
+fcvtpu w21, d10 2f5d61564ee0f3400ae6cb833141e761 853ca193083c74280d6807322ff47ca3 2f5d61564ee0f3400ae6cb833141e761 a6d86025e6d85b560000000000000001 fpsr=00000000
+fcvtps x21, d10 cb7c0348b78eb37c7b7a910dd263f2bf 32bddffc2fa43c5f038696f4b36aebad cb7c0348b78eb37c7b7a910dd263f2bf 9586a9558c7ee2be7fffffffffffffff fpsr=00000000
+fcvtpu x21, d10 edf5bac91db8f319c48ca0aa86e571c1 3bd04a6cac401bf0a95a8640a3f76654 edf5bac91db8f319c48ca0aa86e571c1 90364f7c39c8b16f0000000000000000 fpsr=00000000
+fcvtzs d10, d21 f2a8e6b9e23e13f746fb583aaca7c349 015443c3dff071b960c438f85c7c4c78 00000000000000007fffffffffffffff 015443c3dff071b960c438f85c7c4c78 fpsr=00000000
+fcvtzu d21, d10 3c75e8f8660072f660a91a9da4894936 e32b29e029949e9b88a40bfb40d9fdf9 00000000000000000000000000000000 e32b29e029949e9b88a40bfb40d9fdf9 fpsr=00000000
+fcvtzs s10, s21 2b3c1f6607dd70f6727446b2cf6b6267 0da3ed0492bd484ca76be116e50263af 00000000000000000000000080000000 0da3ed0492bd484ca76be116e50263af fpsr=00000000
+fcvtzu s21, s10 c685a83c75a8aa1102075e3cef48cd8c 7a870d3eaad6358b3b95c4f6b910293f 00000000000000000000000000000000 7a870d3eaad6358b3b95c4f6b910293f fpsr=00000000
+fcvtzs w21, s10 94908953e7df9a87c5f135c59cbdbb5e 53602658167308c800f680c30605d609 94908953e7df9a87c5f135c59cbdbb5e 0737889bb1293e9c0000000000000000 fpsr=00000000
+fcvtzu w21, s10 d5a5ef2947437a8e5109c5914b438b04 797bdda8c9f4638e65bc0d4aacc1fe9f d5a5ef2947437a8e5109c5914b438b04 17c7b1bb0bb1411b0000000000c38b04 fpsr=00000000
+fcvtzs x21, s10 eba53b9ef5b2a905062f6f7f5cb8a05f 4bb79010223aa5bdcac8cc6c0d2502e3 eba53b9ef5b2a905062f6f7f5cb8a05f 83e807e2bb6b5bf205c502f800000000 fpsr=00000000
+fcvtzu x21, s10 366ecb91520d88ce4242917130fd5750 2af6a26e82222e3590fb1c0a881142b3 366ecb91520d88ce4242917130fd5750 ac7cebf0223aec020000000000000000 fpsr=00000000
+fcvtzs w21, d10 14e102e4bd3376c767248e4526f212b5 741670a3478f5fd516335e027e651cf1 14e102e4bd3376c767248e4526f212b5 f161bcc49ffd542b000000007fffffff fpsr=00000000
+fcvtzu w21, d10 e8de3d759706d3d2d4b3c3dc9f77306f 8cf95c8fd360977fbc50f1354e01f27b e8de3d759706d3d2d4b3c3dc9f77306f b279db409294f44d0000000000000000 fpsr=00000000
+fcvtzs x21, d10 0f44de253f6500cdead09216f96c125d cf7dc51286743711e334358259c52432 0f44de253f6500cdead09216f96c125d 50a2a7425cde2c488000000000000000 fpsr=00000000
+fcvtzu x21, d10 ebf544d4152f5c99085c5bd397b11761 9f830c0cbfad9e6deabe8bcbfe9111f6 ebf544d4152f5c99085c5bd397b11761 2abd80ab5cbc5afc0000000000000000 fpsr=00000000
+scvtf v10.2d, v21.2d dbd0d062794548168f357cf3d6269f5a 5ceb905ddee92c7132cd52ef9d4419a6 43d73ae41777ba4b43c966a977cea20d 5ceb905ddee92c7132cd52ef9d4419a6 fpsr=00000000
+ucvtf v10.2d, v21.2d 40b4e1afcd882324de3b585618aa0b27 6495b1e4440942fe1a43ebcd96c09c24 43d9256c7911025143ba43ebcd96c09c 6495b1e4440942fe1a43ebcd96c09c24 fpsr=00000000
+scvtf v10.4s, v21.4s 1a61d08250ed3ff402feb4464ae3fb4f 534787c2aa279e624e868e8182f8a985 4ea68f10ceabb0c34e9d0d1dcefa0ead 534787c2aa279e624e868e8182f8a985 fpsr=00000000
+ucvtf v10.4s, v21.4s db2e4c18627584334bdf103a198e9606 9f9809a0556bb34e55d3dc3fceb9315a 4f1f980a4eaad7674eaba7b84f4eb931 9f9809a0556bb34e55d3dc3fceb9315a fpsr=00000000
+scvtf v10.2s, v21.2s 09de8684db81709a54c65c8962a1cb2a 2f0361cdbeeb085bf65f34d0ec99ec95 0000000000000000cd1a0cb3cd9b309b 2f0361cdbeeb085bf65f34d0ec99ec95 fpsr=00000000
+ucvtf v10.2s, v21.2s 034fdda71af1630b7d93fa1385fcfd9b 6368ee284686fc688e08f6133d793b14 00000000000000004f0e08f64e75e4ec 6368ee284686fc688e08f6133d793b14 fpsr=00000000
+scvtf s7, w15, #1 2a62b16180a4be6427254ab8e27f893a 3c6e684ccf7d309eda9fb2ab1515d08f 0000000000000000000000004d28ae84 ddf763926c7ce086da9fb2ab1515d08f fpsr=00000000
+scvtf s7, w15, #16 399f29ed3191420728343433f5b81361 79982d6c027b9999997f3f7c5eb8d935 00000000000000000000000046bd71b2 7cee52193e572952997f3f7c5eb8d935 fpsr=00000000
+scvtf s7, w15, #32 9a31961554c15557ea7772cf1dd75cef 52945ed4cbec5a2c47546e1851b32eb7 0000000000000000000000003ea3665d 6827ded85716faa647546e1851b32eb7 fpsr=00000000
+scvtf d7, w15, #1 203eb9ec158c86282458999ff777b942 28425d628bb1d33947ff9e5e4fe52ef6 000000000000000041c3f94bbd800000 2aa4f152d5d3375a47ff9e5e4fe52ef6 fpsr=00000000
+scvtf d7, w15, #16 5b828af6a1aa639ef6603030b72f3ad2 a4de4f79dbc0b1681e3b5b234103c291 000000000000000040d040f0a4400000 493344726eb76a3c1e3b5b234103c291 fpsr=00000000
+scvtf d7, w15, #32 d4503f7113ef82552a9bcd11cbb38b1d b51df41c076b5897aad1b3c9ddd5539c 0000000000000000bfc1155632000000 5437ebb551b848f4aad1b3c9ddd5539c fpsr=00000000
+scvtf s7, x15, #1 edebd1f1d380d56d1d0898d66a36df25 931db576f97906ce564d5caa53efdff4 0000000000000000000000005e2c9ab9 dc6cdf9eaa8c5ea3564d5caa53efdff4 fpsr=00000000
+scvtf s7, x15, #32 5aefc88f609df877b904fd3eeb29f662 9cbff56711cc1cef838fb6a60331c679 000000000000000000000000cef8e093 40b3810eda150c2c838fb6a60331c679 fpsr=00000000
+scvtf s7, x15, #64 7c3e842c1d254a515d6d5c29ae6b31b3 32e311cfb042f9d89076229d4e7b690b 000000000000000000000000bedf13bb e0ec31e64031b06e9076229d4e7b690b fpsr=00000000
+scvtf d7, x15, #1 b3b766a867f92bdc6924147714def0fa b5696b8e36bdfd6adee4ff6e94ac278a 0000000000000000c3b08d8048b5a9ec 1cf74d043dc1ac49dee4ff6e94ac278a fpsr=00000000
+scvtf d7, x15, #32 5d39cde3a1fafcf73e0985087c609215 83316383011b8985ccb7adfa33a661d6 0000000000000000c1c9a42902e62ccf 55b438492fa5609cccb7adfa33a661d6 fpsr=00000000
+scvtf d7, x15, #64 dca519bc28061d843bfb0fbb46d377e6 fe1b5890733dfc09bad18d228d4776ce 0000000000000000bfd14b9cb75cae22 eb034f9479bd2b48bad18d228d4776ce fpsr=00000000
+ucvtf s7, w15, #1 90dbab155efeec62c1dc1372d315ff4b 8607aa93ec03b7d60910fec40270c654 0000000000000000000000004b9c3195 3cc3f4c778e96d2e0910fec40270c654 fpsr=00000000
+ucvtf s7, w15, #16 d7bbe2cca2c1cb702f8bf00b82078b25 7ad4b96dca4d19cc185561c1f001b246 000000000000000000000000477001b2 aad586c18e09862c185561c1f001b246 fpsr=00000000
+ucvtf s7, w15, #32 14251fc255311a8fe5e70767b3897a54 3a63e6fe70fa82ca477f15f9b9da9985 0000000000000000000000003f39da9a 951a66611bfcd723477f15f9b9da9985 fpsr=00000000
+ucvtf d7, w15, #1 a4f9c1d8d52d37a044d1b766c77b2db8 279590263bec53b1f7707a4cbddbdbf1 000000000000000041d7bb7b7e200000 5c70f3897da4c0f2f7707a4cbddbdbf1 fpsr=00000000
+ucvtf d7, w15, #16 e91628ec85948581ab2960e81ebc0330 a04818c58d01eb628807f1995be4d96a 000000000000000040d6f9365a800000 5fb88d1716df9f7b8807f1995be4d96a fpsr=00000000
+ucvtf d7, w15, #32 425eb5dfc24761137bcf63cd162e5c9e 055dddbac51aaabb5823d9c2f3d4f2d0 00000000000000003fee7a9e5a000000 fed295ec468fd69d5823d9c2f3d4f2d0 fpsr=00000000
+ucvtf s7, x15, #1 10afc790ee272d3512a31ff511af99e0 b7b33fe74418f19dc9a693a5e68d8703 0000000000000000000000005ec9a694 9a9e6ae86c92c537c9a693a5e68d8703 fpsr=00000000
+ucvtf s7, x15, #32 b2ebbee1691248c9d385f53f6f2119d8 152c9f2a69d91fe83a6e7d2393edf7e2 0000000000000000000000004e69b9f5 93fb6cebe8c9cb2b3a6e7d2393edf7e2 fpsr=00000000
+ucvtf s7, x15, #64 88f0fbb192e913ae1b55448d8e623d64 5504d25ef6737874211cb7aaf597aa18 0000000000000000000000003e0472df f39fdddfc98cedc3211cb7aaf597aa18 fpsr=00000000
+ucvtf d7, x15, #1 5603d7762626b1389e5067719c25e928 ce5caa70b80f3e168af470804cf4b647 000000000000000043d15e8e10099e97 52d8c54c6eda36e98af470804cf4b647 fpsr=00000000
+ucvtf d7, x15, #32 f9226f3e7e73d5fe512a2600b8bd2b4e ebaeb9b199c8a3b9ebea9209d65056bc 000000000000000041ed7d52413aca0b 067a12d8e2b54f00ebea9209d65056bc fpsr=00000000
+ucvtf d7, x15, #64 c9e2849dfd0461ac83ca97a90e7dc8a1 0dd95c00f87c073ca5df7e24f28de955 00000000000000003fe4bbefc49e51bd 6e67246485fb97e9a5df7e24f28de955 fpsr=00000000
+scvtf s7, w15 2524777202b8b423970f184eff452101 93bff53f350dcb8118b193b3018ad0f3 0000000000000000000000004bc5687a ea7d5ccdb58e6f8118b193b3018ad0f3 fpsr=00000000
+scvtf d7, w15 6dc8a79fed702e44eadb0bceeaf4954e de3ee44cb1594e66a241319461266a76 000000000000000041d8499a9d800000 02ae74031f0c30eda241319461266a76 fpsr=00000000
+scvtf s7, x15 4c388708cb41f1cca56eb9a8754317be f7fff43f4076020a62b1bf4143180937 0000000000000000000000005ec5637f 43b53f7df76c19fe62b1bf4143180937 fpsr=00000000
+scvtf d7, x15 408b4153e4a51394811a8acf9abf38ab 526ce1f9efcc43451b9ff198241fa648 000000000000000043bb9ff198241fa6 91bf67eed5704a591b9ff198241fa648 fpsr=00000000
+ucvtf s7, w15 17186f0d5b65149c952405e9327b2c1c 6a4a5c995536fbb8e423e55acf1eaed6 0000000000000000000000004f4f1eaf 4baa4d361af822dde423e55acf1eaed6 fpsr=00000000
+ucvtf d7, w15 33bf7316906155c4416b89d69d5754f3 9e7bc401d1938a441d1dfa66a5f581c1 000000000000000041e4beb038200000 d158503525e401691d1dfa66a5f581c1 fpsr=00000000
+ucvtf s7, x15 f460ac4ee47935eee5d1767539330f0e 4fdd7a0fc3c551c9266d919d068480e8 0000000000000000000000005e19b646 83a7d0cb571348df266d919d068480e8 fpsr=00000000
+ucvtf d7, x15 b8da7b95b68c15f9e2342da868efbd4f db51dda58cabb02760f209e050ab0a2d 000000000000000043d83c8278142ac3 c2782dd80f67561d60f209e050ab0a2d fpsr=00000000
+abs d22, d23 e10f3fca677b53c497750d4d8a6bbf94 a5b74da18b24053e2b8ec30de54a806e 00000000000000002b8ec30de54a806e a5b74da18b24053e2b8ec30de54a806e fpsr=00000000
+neg d22, d23 cfdd58ce5627523165747645fe8674be 0aef2be42011b2ede61f1d052540408c 000000000000000019e0e2fadabfbf74 0aef2be42011b2ede61f1d052540408c fpsr=00000000
+abs v8.2d, v7.2de1262782e36e6f1eab11c97024213cad 1ed9d87d1c9190e254ee368fdbdec353 fpsr=00000000
+abs v8.4s, v7.4sa5de1053b31228fb4900c86f88a5e664 5a21efad4cedd7054900c86f775a199c fpsr=00000000
+abs v8.2s, v7.2s77c80bc46f310c6cca2b65ae5c1d7840 000000000000000035d49a525c1d7840 fpsr=00000000
+abs v8.8h, v7.8hc281a310c2a7e9ed18aeadebcee43f3e 3d7f5cf03d59161318ae5215311c3f3e fpsr=00000000
+abs v8.4h, v7.4hf1a46475595089fb20a4abdf07588759 000000000000000020a45421075878a7 fpsr=00000000
+abs v8.16b, v7.16b72cedb2ddf08b911cf296b4936d39c8d 7232252d2108471131296b49362d6473 fpsr=00000000
+abs v8.8b, v7.8bb09a937501aa44ab105afae385b3cad6 0000000000000000105a061d7b4d362a fpsr=00000000
+neg v8.2d, v7.2d18a519886a14f845ce53636a20525c31 e75ae67795eb07bb31ac9c95dfada3cf fpsr=00000000
+neg v8.4s, v7.4s148af8a3c8219f5cf72fb29a340ea099 eb75075d37de60a408d04d66cbf15f67 fpsr=00000000
+neg v8.2s, v7.2s11e5bc02c4ad076a760af42eed41e00a 000000000000000089f50bd212be1ff6 fpsr=00000000
+neg v8.8h, v7.8h7b53f1e10d94faed370134e376496980 84ad0e1ff26c0513c8ffcb1d89b79680 fpsr=00000000
+neg v8.4h, v7.4hbf70247b4db14560262f7e75fc8087f8 0000000000000000d9d1818b03807808 fpsr=00000000
+neg v8.16b, v7.16b48d7e00d30e2b4402fb1dfa0ab43866c b82920f3d01e4cc0d14f216055bd7a94 fpsr=00000000
+neg v8.8b, v7.8b8124b2d3630212073fa2621faeeeb1da 0000000000000000c15e9ee152124f26 fpsr=00000000
+add d21, d22, d23 d8f4250992ec2d33401f13af32de563d 34327af4f2c664e9893ea54c1650e18d b8e3c5ea687ecf3f1f43ff0c626dbf92 0000000000000000a882a45878bea11f 34327af4f2c664e9893ea54c1650e18d b8e3c5ea687ecf3f1f43ff0c626dbf92 fpsr=00000000
randV128: 1792 calls, 1849 iters
-addp d22, v23.2d c38bbda0bc06dce829f2b61b78db10fe e830864ada7c96d44a165e7933af8a6d 00000000000000003246e4c40e2c2141 e830864ada7c96d44a165e7933af8a6d fpsr=00000000
-addp v9.2d, v7.2d, v8.2d 02fdfbd4be7a97e1ba8ee52e511905ff fc5785291fbe3dbda511fc77f3d4478f a16981a11392854cbd8ce1030f939de0 fpsr=00000000
-addp v9.4s, v7.4s, v8.4s f8b2254c9162e9222503df3a0bbf390a d619de68ceba620c34f9ef234c08fd75 a4d440748102ec988a150e6e30c31844 fpsr=00000000
-addp v9.2s, v7.2s, v8.2s 46ed0c8b09ec0cc9f6c1c3a9050718f2 f200632173feee3c645b0af48714c2c3 0000000000000000eb6fcdb7fbc8dc9b fpsr=00000000
-addp v9.8h, v7.8h, v8.8h c82c194d3bade0e9fcf96a644336f1f8 4c2c9bb143c2e20121054676c7e0095b e7dd25c3677bd13be1791c96675d352e fpsr=00000000
-addp v9.4h, v7.4h, v8.4h bbcf152b991da77361b80d362a737640 40996f50d21b9decb7a6fc139233a000 0000000000000000b3b932336eeea0b3 fpsr=00000000
-addp v9.16b, v7.16b, v8.16b bb1327a1fa91003bb4ec45ca7ec6b7cb 8c28281b1500e070d4cce314ccb1b855 b4431550a0f77d0dcec88b3ba00f4482 fpsr=00000000
-addp v9.8b, v7.8b, v8.8b c617da099240ecf3df6509aa6414257d 4a976e0b5f48cbe084e614a5b9e2e3db 00000000000000006ab99bbe44b378a2 fpsr=00000000
-addv s22, v23.4s 37d9149df442cc2e30d1b24160248f17 f98349fb67aae06e334208d0fe2d10f5 000000000000000000000000929d442e f98349fb67aae06e334208d0fe2d10f5 fpsr=00000000
-addv h22, v23.8h 746c22a53fbbff2cad0f98809fd88fe6 9ef4a3944df3c9d4569af79c8e037c70 0000000000000000000000000000b2f8 9ef4a3944df3c9d4569af79c8e037c70 fpsr=00000000
-addv h22, v23.4h 2daaa8cc4b3087c5a3b52395a9c08013 228e517395a6bbe31716cb78e8c8aab6 0000000000000000000000000000760c 228e517395a6bbe31716cb78e8c8aab6 fpsr=00000000
-addv b22, v23.16b 639a8d39936d242ce92760be0d844379 52dd395b5564e43fb140cab5fb343595 00000000000000000000000000000008 52dd395b5564e43fb140cab5fb343595 fpsr=00000000
-addv b22, v23.8b c0f7b6c5a827648d2bad16505c18a798 3d51cda4c62e1981374858040bb12b87 00000000000000000000000000000049 3d51cda4c62e1981374858040bb12b87 fpsr=00000000
-and v9.16b, v7.16b, v8.16b 99862df934b6dce73e8a4e0c356437f5 7c30c60c06851eb465dd7ff6fe9de5ae 1800040804841ca424884e04340425a4 fpsr=00000000
-and v9.8b, v7.8b, v8.8b 4aade6a2828b4c7e29034a825be4498b 4f2751b395f8ec19819d67d3f947526f 0000000000000000010142825944400b fpsr=00000000
-bic v9.16b, v7.16b, v8.16b 5ccf2bbc8b97fcdfa7918b6db5dd9cc5 41ba82d42ecff20554c5c18507a358e5 1c45292881100cdaa3100a68b05c8400 fpsr=00000000
-bic v9.8b, v7.8b, v8.8b ff253e627c77b0962268452db8249275 328ac5a5d35f6be03ddd55aa6275a2e4 00000000000000000220000598001011 fpsr=00000000
-orr v9.16b, v7.16b, v8.16b f508d1be5c90c9b3a0b04c5ee5c36620 2047b7a17a8f9e5b225535c34997ee2b f54ff7bf7e9fdffba2f57ddfedd7ee2b fpsr=00000000
-orr v9.8b, v7.8b, v8.8b 5b368dcb81b766872cd8ba2a8242a848 464e1f6196d6cb6a2f3d999b2230edda 00000000000000002ffdbbbba272edda fpsr=00000000
-orn v9.16b, v7.16b, v8.16b ac4f7a659ea30845342f069d33064851 42df2661fc8993ddf18218ddaf45b0f5 bd6ffbff9ff76c673e7fe7bf73be4f5b fpsr=00000000
-orn v9.8b, v7.8b, v8.8b c6d00245c8eb900083e20aa0fc56977c 101855fbe1dff56954f4ad1317bea85f 0000000000000000abeb5aecfc57d7fc fpsr=00000000
-orr v22.8h, #0x5A, LSL #0 e518ec0574063eaa4700feff415845ed 0cf79369d9ef54a0a441afa7dc61a5d9 e55aec5f745e3efa475afeff415a45ff 0cf79369d9ef54a0a441afa7dc61a5d9 fpsr=00000000
-orr v22.8h, #0xA5, LSL #8 f45c2bc6d8af6ef38ff6d6e5e5d4d706 1ee14244b0571f48e685a5e998b4ae82 f55cafc6fdafeff3aff6f7e5e5d4f706 1ee14244b0571f48e685a5e998b4ae82 fpsr=00000000
-orr v22.4h, #0x5A, LSL #0 5d6c6fb6ae0252daa8904c468d2e1258 558e6516a07aba1bc53859e631267d65 0000000000000000a8da4c5e8d7e125a 558e6516a07aba1bc53859e631267d65 fpsr=00000000
-orr v22.4h, #0xA5, LSL #8 2879789e31d24c344a41059e1db1323b 0affd5281de6e502873565e79e9dea46 0000000000000000ef41a59ebdb1b73b 0affd5281de6e502873565e79e9dea46 fpsr=00000000
-orr v22.4s, #0x5A, LSL #0 dfe8bfde9ca56d372c772fd0a71c6d0b 83099a08d80dcf8a60f0fb3b5eb50b0c dfe8bfde9ca56d7f2c772fdaa71c6d5b 83099a08d80dcf8a60f0fb3b5eb50b0c fpsr=00000000
-orr v22.4s, #0x6B, LSL #8 e399a4554c5c16c3af142bbe8c4e24a7 218e159731d0d894b24979c2d04c4097 e399ef554c5c7fc3af146bbe8c4e6fa7 218e159731d0d894b24979c2d04c4097 fpsr=00000000
-orr v22.4s, #0x49, LSL #16 936b85e2a3d7a6b833f657462b28b6f1 446ca5b5880f61fedd20425c5543e8c7 936b85e2a3dfa6b833ff57462b69b6f1 446ca5b5880f61fedd20425c5543e8c7 fpsr=00000000
-orr v22.4s, #0x3D, LSL #24 5040c56601f67df616fe1649e48a83c7 4a84aa423eaacaa94054b3e94c7a637b 7d40c5663df67df63ffe1649fd8a83c7 4a84aa423eaacaa94054b3e94c7a637b fpsr=00000000
-orr v22.2s, #0x5A, LSL #0 79f7c1c1c599fc5cba0cc5a71855ec0b 95b6851eb38171753bc72e4915d21195 0000000000000000ba0cc5ff1855ec5b 95b6851eb38171753bc72e4915d21195 fpsr=00000000
-orr v22.2s, #0x6B, LSL #8 6e6fdbd34fa083cc7f00c6402666509b 84e295294673b8412e57125c112853f3 00000000000000007f00ef4026667b9b 84e295294673b8412e57125c112853f3 fpsr=00000000
-orr v22.2s, #0x49, LSL #16 78e73b425762ffef7ae5c0019f5f8976 bfb9abff94af4c7e6467b20eb6320f5d 00000000000000007aedc0019f5f8976 bfb9abff94af4c7e6467b20eb6320f5d fpsr=00000000
-orr v22.2s, #0x3D, LSL #24 d0a7d64b462ca55d7e51971a1f5611fe 776ab28f92c3c8f73eed236e6b0ccca1 00000000000000007f51971a3f5611fe 776ab28f92c3c8f73eed236e6b0ccca1 fpsr=00000000
-bic v22.8h, #0x5A, LSL #0 ed00c62274b20a6d9b7bf885f2ec4d6b cced2765264b9c0a076a3499c93dd4c3 ed00c62074a00a259b21f885f2a44d21 cced2765264b9c0a076a3499c93dd4c3 fpsr=00000000
-bic v22.8h, #0xA5, LSL #8 2dd36ca840d48ffd3043412377039d9d 1d226962b128289621bc486f32a787a1 08d348a840d40afd104340235203189d 1d226962b128289621bc486f32a787a1 fpsr=00000000
-bic v22.4h, #0x5A, LSL #0 f30127be0b7293ee9e89d5d40f796074 cae8d9659338cb7aecc4bccf0528461c 00000000000000009e81d5840f216024 cae8d9659338cb7aecc4bccf0528461c fpsr=00000000
-bic v22.4h, #0xA5, LSL #8 9c685842346c7620432c1178192ff6d0 3421d5502a5be597c762f29ba2a17014 0000000000000000422c1078182f52d0 3421d5502a5be597c762f29ba2a17014 fpsr=00000000
-bic v22.4s, #0x5A, LSL #0 8ae95e141ba29973810e57eff505bf90 baabc002d873d6cd127649b16af26568 8ae95e041ba29921810e57a5f505bf80 baabc002d873d6cd127649b16af26568 fpsr=00000000
-bic v22.4s, #0x6B, LSL #8 1d63991621f45bc7b80d061804db1c96 bc67f75afc5ffffc2ee022f3bdfb86fa 1d63901621f410c7b80d041804db1496 bc67f75afc5ffffc2ee022f3bdfb86fa fpsr=00000000
-bic v22.4s, #0x49, LSL #16 b3b86927a5411cfb470a7fd5a5916dc0 9b36dc39f7fec0047a7fdc3ff99b32a8 b3b06927a5001cfb47027fd5a5906dc0 9b36dc39f7fec0047a7fdc3ff99b32a8 fpsr=00000000
-bic v22.4s, #0x3D, LSL #24 aec72f26086b3df18ee52104380610ef b6f6cf80283277c55635d77680b4c954 82c72f26006b3df182e52104000610ef b6f6cf80283277c55635d77680b4c954 fpsr=00000000
-bic v22.2s, #0x5A, LSL #0 6e6f4bf5a9501d87ee7e4d861e1c6703 6e882e0df0d9861e23e07478b225acdc 0000000000000000ee7e4d841e1c6701 6e882e0df0d9861e23e07478b225acdc fpsr=00000000
-bic v22.2s, #0x6B, LSL #8 52911c72e8d11d9fc6b5613bb6b1d2dc 22cb5bc1aed44df140621225eecd3b21 0000000000000000c6b5003bb6b190dc 22cb5bc1aed44df140621225eecd3b21 fpsr=00000000
-bic v22.2s, #0x49, LSL #16 ba0e027e25ce9c17766ac00361a7af5a 32a1b67cc2032b1c0d99125d948dd403 00000000000000007622c00361a6af5a 32a1b67cc2032b1c0d99125d948dd403 fpsr=00000000
-bic v22.2s, #0x3D, LSL #24 06c45df9c127fad05f7cc7be7edc615c 309a155661bc5b3a970fa92da5948645 0000000000000000427cc7be42dc615c 309a155661bc5b3a970fa92da5948645 fpsr=00000000
-bif v9.16b, v7.16b, v8.16b e88273866d7cacfd3aa9b5ed9fd5aa1e a84b547b9e027d9928d262d8020de9d3 40c3379f757cd07d3a7995359fd40a5c fpsr=00000000
-bif v9.8b, v7.8b, v8.8b cd5df4bc956cd5845a3b538d8f86bd70 4d4d9595c587107358421905c51da516 00000000000000004239538c4b961c76 fpsr=00000000
-bit v9.16b, v7.16b, v8.16b 3c2c82326ba235624474d977f96c92ff 0601f0c38c1911402ca7966043ba2841 8d2a852e7a441dc28734d868d56d056d fpsr=00000000
-bit v9.8b, v7.8b, v8.8b f3cb6403e5138d08a4e302f7c22f576e b0e6ccbf084e60116f32b3d4822cc297 0000000000000000b4e302f7ebaf670e fpsr=00000000
-bsl v9.16b, v7.16b, v8.16b 0df943295698feca87f5e4362e559f3e 8759f324ad9e3dd94ef0a72be697243a 8759e3202698bed886f5e527e6552f3e fpsr=00000000
-bsl v9.8b, v7.8b, v8.8b 0756277f75e509da59f9fa40e24459d3 289a8d6d515e486a56cf0c0f33045d2d 000000000000000057ed0a0d33045df1 fpsr=00000000
-eor v9.16b, v7.16b, v8.16b bd5f7ac055938c4ae61f1afee343d66e 8ec723f327c58378749fda0c8e58df52 3398593372560f329280c0f26d1b093c fpsr=00000000
-eor v9.8b, v7.8b, v8.8b 6d7403856a16ca0d5c737f3b9478c732 17df9df2c5eb4d94f30e688b7b5a796c 0000000000000000af7d17b0ef22be5e fpsr=00000000
-cls v8.4s, v7.4sb2d2eb4a89c663f647e6c0a2bbeb3b22 00000000000000000000000000000000 fpsr=00000000
-cls v8.2s, v7.2s7c611d1b3be756275f2348932df957f8 00000000000000000000000000000001 fpsr=00000000
-cls v8.8h, v7.8he128bea28728f3a128e20c1cfee21be8 00020000000000030001000300060002 fpsr=00000000
-cls v8.4h, v7.4h4ec45a1b186606e28c3e18f65a00d1f0 00000000000000000000000200000001 fpsr=00000000
-cls v8.16b, v7.16b2dd17ec29b7e5b66795479e06cb1c60b 01010001000000000000000200000103 fpsr=00000000
-cls v8.8b, v7.8beceab5d2bb4abda7da3f3a94614f4635 00000000000000000101010000000001 fpsr=00000000
-clz v8.4s, v7.4sf6ab8c8825a7f9229b1b68cf64389d6b 00000000000000020000000000000001 fpsr=00000000
-clz v8.2s, v7.2sb7b18d208472dc54a8060d4da2c617a7 00000000000000000000000000000000 fpsr=00000000
-clz v8.8h, v7.8h9b9747d6868530b8ed1938ca4756ffe7 00000001000000020000000200010000 fpsr=00000000
-clz v8.4h, v7.4h0efa43e5d4bdc2cb5672f2017e45a226 00000000000000000001000000010000 fpsr=00000000
-clz v8.16b, v7.16b7c750f8a1df65d07cf2d49af74ed4d60 01010400030001050002010001000101 fpsr=00000000
-clz v8.8b, v7.8b51a536010b0ccfea4465488f54ab4a92 00000000000000000101010001000100 fpsr=00000000
-cmeq d2, d11, d29 f92545854adbe3efa236fc5f4cdbe6b7 331872e3a2317da9857511bf910f4bd7 e192c653873f6492d3bd70d985da6ccb 00000000000000000000000000000000 331872e3a2317da9857511bf910f4bd7 e192c653873f6492d3bd70d985da6ccb fpsr=00000000
-cmge d2, d11, d29 9090bf27226d360f70949e8acdead7cd 4a7a78d0e881730899abc69f7940797a 6784034f425fffadcad311238aae0a66 00000000000000000000000000000000 4a7a78d0e881730899abc69f7940797a 6784034f425fffadcad311238aae0a66 fpsr=00000000
-cmgt d2, d11, d29 30499324f7b8a70899c628398b953fee 1aa3e85464f00e7f03e98ed6f5d47802 fa52f748e5d71ebee6b3e22f2570d9d3 0000000000000000ffffffffffffffff 1aa3e85464f00e7f03e98ed6f5d47802 fa52f748e5d71ebee6b3e22f2570d9d3 fpsr=00000000
-cmhi d2, d11, d29 75b9b32e434552a7e5fff39e6dc387cd b781da341dc0ba0af56d0e529c4a6df7 fe5123690c4da5d27097608e72f233da 0000000000000000ffffffffffffffff b781da341dc0ba0af56d0e529c4a6df7 fe5123690c4da5d27097608e72f233da fpsr=00000000
-cmhs d2, d11, d29 c454e49a2d49bb003834438d1929b200 838612c33924fbbc552b8ae513565bed d9f74c08dcf616fb4e72cf1414e81d11 0000000000000000ffffffffffffffff 838612c33924fbbc552b8ae513565bed d9f74c08dcf616fb4e72cf1414e81d11 fpsr=00000000
-cmtst d2, d11, d29 818ce8bcd6f8672776585cdb337bc51a e3285455db5155ab05154466fcab4678 edb634797806f54f62387494af069a0a 0000000000000000ffffffffffffffff e3285455db5155ab05154466fcab4678 edb634797806f54f62387494af069a0a fpsr=00000000
-cmeq v9.2d, v7.2d, v8.2d 10d785e76486da2f835e825b5d6cc3ae 3bda643f287a4ae9eb2181a7fdfe332c 00000000000000000000000000000000 fpsr=00000000
-cmeq v9.4s, v7.4s, v8.4s fa9b5d0edf355b5302e72354d08d9009 68c11bd3fef26d612d730a26cea390e8 00000000000000000000000000000000 fpsr=00000000
+sub d21, d22, d23 c38bbda0bc06dce829f2b61b78db10fe e830864ada7c96d44a165e7933af8a6d c67d2dec91b4de7c2ab49846b672900e 00000000000000001f61c6327d3cfa5f e830864ada7c96d44a165e7933af8a6d c67d2dec91b4de7c2ab49846b672900e fpsr=00000000
+add v9.2d, v7.2d, v8.2d e4a8b294ee32d592c49ca98e742dbacd f8b2254c9162e9222503df3a0bbf390a dd5ad7e17f95beb4e9a088c87fecf3d7 fpsr=00000000
+add v9.4s, v7.4s, v8.4s 7b6140e0c9848bcec0128ad02e619e1d 46ed0c8b09ec0cc9f6c1c3a9050718f2 c24e4d6bd3709897b6d44e793368b70f fpsr=00000000
+add v9.2s, v7.2s, v8.2s 9ebfc73a4ca59d47f71131dbca865840 c82c194d3bade0e9fcf96a644336f1f8 0000000000000000f40a9c3f0dbd4a38 fpsr=00000000
+add v9.8h, v7.8h, v8.8h 6881ee9ecc6e2b4f7408b7da8d2177b9 bbcf152b991da77361b80d362a737640 245003c9658bd2c2d5c0c510b794edf9 fpsr=00000000
+add v9.4h, v7.4h, v8.4h 5744c0e5fb93b71aa44693d71d9aedea bb1327a1fa91003bb4ec45ca7ec6b7cb 00000000000000005932d9a19c60a5b5 fpsr=00000000
+add v9.16b, v7.16b, v8.16b 4589a3cbf0ac21b854f89ebc7c370a15 c617da099240ecf3df6509aa6414257d 0ba07dd482ec0dab335da766e04b2f92 fpsr=00000000
+add v9.8b, v7.8b, v8.8b 71ac61ea1e30a81eb02e1155111f7e5e 37d9149df442cc2e30d1b24160248f17 0000000000000000e0ffc39671430d75 fpsr=00000000
+sub v9.2d, v7.2d, v8.2d 76ed21bc5b74ee1e45d5854b9e575ac7 cb391f78168b605d54befad9589c263d abb4024444e98dc1f1168a7245bb348a fpsr=00000000
+sub v9.4s, v7.4s, v8.4s 9ef4a3944df3c9d4569af79c8e037c70 f9b0c2a55df2670d205bfb7f010913d0 a543e0eff00162c7363efc1d8cfa68a0 fpsr=00000000
+sub v9.2s, v7.2s, v8.2s 2daaa8cc4b3087c5a3b52395a9c08013 228e517395a6bbe31716cb78e8c8aab6...
[truncated message content] |
|
From: <sv...@va...> - 2015-03-30 09:02:00
|
Author: sewardj
Date: Mon Mar 30 10:01:51 2015
New Revision: 3111
Log:
arm64: add support for
FCVT{N,M,A,P,Z}{S,U} d_d, s_s
FCVTN 4h/8h_4s, 2s/4s_2d
FCVTL 4s_4h/8h, 2d_2s/4s
FCVT Sd, Hn
FCVT Dd, Hn
FCVT Hd, Sn
FCVT Hd, Dn
Modified:
trunk/priv/guest_arm64_toIR.c
trunk/priv/host_arm64_defs.c
trunk/priv/host_arm64_defs.h
trunk/priv/host_arm64_isel.c
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Mon Mar 30 10:01:51 2015
@@ -1416,7 +1416,7 @@
UInt laneSzB = 0;
switch (laneTy) {
case Ity_I8: laneSzB = 1; break;
- case Ity_I16: laneSzB = 2; break;
+ case Ity_F16: case Ity_I16: laneSzB = 2; break;
case Ity_F32: case Ity_I32: laneSzB = 4; break;
case Ity_F64: case Ity_I64: laneSzB = 8; break;
case Ity_V128: laneSzB = 16; break;
@@ -1436,7 +1436,7 @@
Int off = offsetQRegLane(qregNo, ty, 0);
switch (ty) {
case Ity_I8: case Ity_I16: case Ity_I32: case Ity_I64:
- case Ity_F32: case Ity_F64: case Ity_V128:
+ case Ity_F16: case Ity_F32: case Ity_F64: case Ity_V128:
break;
default:
vassert(0); // Other cases are probably invalid
@@ -1450,7 +1450,7 @@
Int off = offsetQRegLane(qregNo, ty, 0);
switch (ty) {
case Ity_I8:
- case Ity_I16:
+ case Ity_F16: case Ity_I16:
case Ity_I32: case Ity_I64:
case Ity_F32: case Ity_F64: case Ity_V128:
break;
@@ -1537,7 +1537,7 @@
switch (laneTy) {
case Ity_F64: case Ity_I64:
case Ity_I32: case Ity_F32:
- case Ity_I16:
+ case Ity_I16: case Ity_F16:
case Ity_I8:
break;
default:
@@ -1552,7 +1552,7 @@
Int off = offsetQRegLane(qregNo, laneTy, laneNo);
switch (laneTy) {
case Ity_I64: case Ity_I32: case Ity_I16: case Ity_I8:
- case Ity_F64: case Ity_F32:
+ case Ity_F64: case Ity_F32: case Ity_F16:
break;
default:
vassert(0); // Other cases are ATC
@@ -9917,6 +9917,58 @@
return True;
}
+ ix = 0; /*INVALID*/
+ switch (opcode) {
+ case BITS5(1,1,0,1,0): ix = ((size & 2) == 2) ? 4 : 1; break;
+ case BITS5(1,1,0,1,1): ix = ((size & 2) == 2) ? 5 : 2; break;
+ case BITS5(1,1,1,0,0): if ((size & 2) == 0) ix = 3; break;
+ default: break;
+ }
+ if (ix > 0) {
+ /* -------- 0,0x,11010 FCVTNS d_d, s_s (ix 1) -------- */
+ /* -------- 0,0x,11011 FCVTMS d_d, s_s (ix 2) -------- */
+ /* -------- 0,0x,11100 FCVTAS d_d, s_s (ix 3) -------- */
+ /* -------- 0,1x,11010 FCVTPS d_d, s_s (ix 4) -------- */
+ /* -------- 0,1x,11011 FCVTZS d_d, s_s (ix 5) -------- */
+ /* -------- 1,0x,11010 FCVTNS d_d, s_s (ix 1) -------- */
+ /* -------- 1,0x,11011 FCVTMS d_d, s_s (ix 2) -------- */
+ /* -------- 1,0x,11100 FCVTAS d_d, s_s (ix 3) -------- */
+ /* -------- 1,1x,11010 FCVTPS d_d, s_s (ix 4) -------- */
+ /* -------- 1,1x,11011 FCVTZS d_d, s_s (ix 5) -------- */
+ Bool is64 = (size & 1) == 1;
+ IRType tyF = is64 ? Ity_F64 : Ity_F32;
+ IRType tyI = is64 ? Ity_I64 : Ity_I32;
+ IRRoundingMode irrm = 8; /*impossible*/
+ HChar ch = '?';
+ switch (ix) {
+ case 1: ch = 'n'; irrm = Irrm_NEAREST; break;
+ case 2: ch = 'm'; irrm = Irrm_NegINF; break;
+ case 3: ch = 'a'; irrm = Irrm_NEAREST; break; /* kludge? */
+ case 4: ch = 'p'; irrm = Irrm_PosINF; break;
+ case 5: ch = 'z'; irrm = Irrm_ZERO; break;
+ default: vassert(0);
+ }
+ IROp cvt = Iop_INVALID;
+ if (bitU == 1) {
+ cvt = is64 ? Iop_F64toI64U : Iop_F32toI32U;
+ } else {
+ cvt = is64 ? Iop_F64toI64S : Iop_F32toI32S;
+ }
+ IRTemp src = newTemp(tyF);
+ IRTemp res = newTemp(tyI);
+ assign(src, getQRegLane(nn, 0, tyF));
+ assign(res, binop(cvt, mkU32(irrm), mkexpr(src)));
+ putQRegLane(dd, 0, mkexpr(res)); /* bits 31-0 or 63-0 */
+ if (!is64) {
+ putQRegLane(dd, 1, mkU32(0)); /* bits 63-32 */
+ }
+ putQRegLane(dd, 1, mkU64(0)); /* bits 127-64 */
+ HChar sOrD = is64 ? 'd' : 's';
+ DIP("fcvt%c%c %c%u, %c%u\n", ch, bitU == 1 ? 'u' : 's',
+ sOrD, dd, sOrD, nn);
+ return True;
+ }
+
if (size >= X10 && opcode == BITS5(1,1,1,0,1)) {
/* -------- 0,1x,11101: FRECPE d_d, s_s -------- */
/* -------- 1,1x,11101: FRSQRTE d_d, s_s -------- */
@@ -11906,18 +11958,48 @@
return True;
}
- if (bitU == 0 && size == X01 && opcode == BITS5(1,0,1,1,0)) {
- /* -------- 0,01,10110: FCVTN 2s/4s_2d -------- */
- IRTemp rm = mk_get_IR_rounding_mode();
- IRExpr* srcLo = getQRegLane(nn, 0, Ity_F64);
- IRExpr* srcHi = getQRegLane(nn, 1, Ity_F64);
- putQRegLane(dd, 2 * bitQ + 0, binop(Iop_F64toF32, mkexpr(rm), srcLo));
- putQRegLane(dd, 2 * bitQ + 1, binop(Iop_F64toF32, mkexpr(rm), srcHi));
+ if (bitU == 0 && size <= X01 && opcode == BITS5(1,0,1,1,0)) {
+ /* -------- 0,0x,10110: FCVTN 4h/8h_4s, 2s/4s_2d -------- */
+ UInt nLanes = size == X00 ? 4 : 2;
+ IRType srcTy = size == X00 ? Ity_F32 : Ity_F64;
+ IROp opCvt = size == X00 ? Iop_F32toF16 : Iop_F64toF32;
+ IRTemp rm = mk_get_IR_rounding_mode();
+ IRTemp src[nLanes];
+ for (UInt i = 0; i < nLanes; i++) {
+ src[i] = newTemp(srcTy);
+ assign(src[i], getQRegLane(nn, i, srcTy));
+ }
+ for (UInt i = 0; i < nLanes; i++) {
+ putQRegLane(dd, nLanes * bitQ + i,
+ binop(opCvt, mkexpr(rm), mkexpr(src[i])));
+ }
if (bitQ == 0) {
putQRegLane(dd, 1, mkU64(0));
}
- DIP("fcvtn%s %s.%s, %s.2d\n", bitQ ? "2" : "",
- nameQReg128(dd), bitQ ? "4s" : "2s", nameQReg128(nn));
+ const HChar* arrNarrow = nameArr_Q_SZ(bitQ, 1+size);
+ const HChar* arrWide = nameArr_Q_SZ(1, 1+size+1);
+ DIP("fcvtn%s %s.%s, %s.%s\n", bitQ ? "2" : "",
+ nameQReg128(dd), arrNarrow, nameQReg128(nn), arrWide);
+ return True;
+ }
+
+ if (bitU == 0 && size <= X01 && opcode == BITS5(1,0,1,1,1)) {
+ /* -------- 0,0x,10110: FCVTL 4s_4h/8h, 2d_2s/4s -------- */
+ UInt nLanes = size == X00 ? 4 : 2;
+ IRType srcTy = size == X00 ? Ity_F16 : Ity_F32;
+ IROp opCvt = size == X00 ? Iop_F16toF32 : Iop_F32toF64;
+ IRTemp src[nLanes];
+ for (UInt i = 0; i < nLanes; i++) {
+ src[i] = newTemp(srcTy);
+ assign(src[i], getQRegLane(nn, nLanes * bitQ + i, srcTy));
+ }
+ for (UInt i = 0; i < nLanes; i++) {
+ putQRegLane(dd, i, unop(opCvt, mkexpr(src[i])));
+ }
+ const HChar* arrNarrow = nameArr_Q_SZ(bitQ, 1+size);
+ const HChar* arrWide = nameArr_Q_SZ(1, 1+size+1);
+ DIP("fcvtl%s %s.%s, %s.%s\n", bitQ ? "2" : "",
+ nameQReg128(dd), arrWide, nameQReg128(nn), arrNarrow);
return True;
}
@@ -12628,36 +12710,67 @@
/* -------- 01,000111: FCVT h_d -------- */
/* -------- 01,000100: FCVT s_d -------- */
/* 31 23 21 16 14 9 4
- 000 11110 11 10001 00 10000 n d FCVT Sd, Hn (unimp)
- --------- 11 ----- 01 --------- FCVT Dd, Hn (unimp)
- --------- 00 ----- 11 --------- FCVT Hd, Sn (unimp)
+ 000 11110 11 10001 00 10000 n d FCVT Sd, Hn
+ --------- 11 ----- 01 --------- FCVT Dd, Hn
+ --------- 00 ----- 11 --------- FCVT Hd, Sn
--------- 00 ----- 01 --------- FCVT Dd, Sn
- --------- 01 ----- 11 --------- FCVT Hd, Dn (unimp)
+ --------- 01 ----- 11 --------- FCVT Hd, Dn
--------- 01 ----- 00 --------- FCVT Sd, Dn
Rounding, when dst is smaller than src, is per the FPCR.
*/
UInt b2322 = ty;
UInt b1615 = opcode & BITS2(1,1);
- if (b2322 == BITS2(0,0) && b1615 == BITS2(0,1)) {
- /* Convert S to D */
- IRTemp res = newTemp(Ity_F64);
- assign(res, unop(Iop_F32toF64, getQRegLO(nn, Ity_F32)));
- putQReg128(dd, mkV128(0x0000));
- putQRegLO(dd, mkexpr(res));
- DIP("fcvt %s, %s\n",
- nameQRegLO(dd, Ity_F64), nameQRegLO(nn, Ity_F32));
- return True;
- }
- if (b2322 == BITS2(0,1) && b1615 == BITS2(0,0)) {
- /* Convert D to S */
- IRTemp res = newTemp(Ity_F32);
- assign(res, binop(Iop_F64toF32, mkexpr(mk_get_IR_rounding_mode()),
- getQRegLO(nn, Ity_F64)));
- putQReg128(dd, mkV128(0x0000));
- putQRegLO(dd, mkexpr(res));
- DIP("fcvt %s, %s\n",
- nameQRegLO(dd, Ity_F32), nameQRegLO(nn, Ity_F64));
- return True;
+ switch ((b2322 << 2) | b1615) {
+ case BITS4(0,0,0,1): // S -> D
+ case BITS4(1,1,0,1): { // H -> D
+ Bool srcIsH = b2322 == BITS2(1,1);
+ IRType srcTy = srcIsH ? Ity_F16 : Ity_F32;
+ IRTemp res = newTemp(Ity_F64);
+ assign(res, unop(srcIsH ? Iop_F16toF64 : Iop_F32toF64,
+ getQRegLO(nn, srcTy)));
+ putQReg128(dd, mkV128(0x0000));
+ putQRegLO(dd, mkexpr(res));
+ DIP("fcvt %s, %s\n",
+ nameQRegLO(dd, Ity_F64), nameQRegLO(nn, srcTy));
+ return True;
+ }
+ case BITS4(0,1,0,0): // D -> S
+ case BITS4(0,1,1,1): { // D -> H
+ Bool dstIsH = b1615 == BITS2(1,1);
+ IRType dstTy = dstIsH ? Ity_F16 : Ity_F32;
+ IRTemp res = newTemp(dstTy);
+ assign(res, binop(dstIsH ? Iop_F64toF16 : Iop_F64toF32,
+ mkexpr(mk_get_IR_rounding_mode()),
+ getQRegLO(nn, Ity_F64)));
+ putQReg128(dd, mkV128(0x0000));
+ putQRegLO(dd, mkexpr(res));
+ DIP("fcvt %s, %s\n",
+ nameQRegLO(dd, dstTy), nameQRegLO(nn, Ity_F64));
+ return True;
+ }
+ case BITS4(0,0,1,1): // S -> H
+ case BITS4(1,1,0,0): { // H -> S
+ Bool toH = b1615 == BITS2(1,1);
+ IRType srcTy = toH ? Ity_F32 : Ity_F16;
+ IRType dstTy = toH ? Ity_F16 : Ity_F32;
+ IRTemp res = newTemp(dstTy);
+ if (toH) {
+ assign(res, binop(Iop_F32toF16,
+ mkexpr(mk_get_IR_rounding_mode()),
+ getQRegLO(nn, srcTy)));
+
+ } else {
+ assign(res, unop(Iop_F16toF32,
+ getQRegLO(nn, srcTy)));
+ }
+ putQReg128(dd, mkV128(0x0000));
+ putQRegLO(dd, mkexpr(res));
+ DIP("fcvt %s, %s\n",
+ nameQRegLO(dd, dstTy), nameQRegLO(nn, srcTy));
+ return True;
+ }
+ default:
+ break;
}
/* else unhandled */
return False;
@@ -13029,7 +13142,6 @@
---------------- 01 -------------- FCVTP-------- (round to +inf)
---------------- 10 -------------- FCVTM-------- (round to -inf)
---------------- 11 -------------- FCVTZ-------- (round to zero)
-
---------------- 00 100 ---------- FCVTAS------- (nearest, ties away)
---------------- 00 101 ---------- FCVTAU------- (nearest, ties away)
Modified: trunk/priv/host_arm64_defs.c
==============================================================================
--- trunk/priv/host_arm64_defs.c (original)
+++ trunk/priv/host_arm64_defs.c Mon Mar 30 10:01:51 2015
@@ -176,6 +176,11 @@
vex_printf("(S-reg)");
}
+static void ppHRegARM64asHreg ( HReg reg ) {
+ ppHRegARM64(reg);
+ vex_printf("(H-reg)");
+}
+
/* --------- Condition codes, ARM64 encoding. --------- */
@@ -1003,9 +1008,19 @@
i->tag = ARM64in_MFence;
return i;
}
+ARM64Instr* ARM64Instr_VLdStH ( Bool isLoad, HReg sD, HReg rN, UInt uimm12 ) {
+ ARM64Instr* i = LibVEX_Alloc_inline(sizeof(ARM64Instr));
+ i->tag = ARM64in_VLdStH;
+ i->ARM64in.VLdStH.isLoad = isLoad;
+ i->ARM64in.VLdStH.hD = sD;
+ i->ARM64in.VLdStH.rN = rN;
+ i->ARM64in.VLdStH.uimm12 = uimm12;
+ vassert(uimm12 < 8192 && 0 == (uimm12 & 1));
+ return i;
+}
ARM64Instr* ARM64Instr_VLdStS ( Bool isLoad, HReg sD, HReg rN, UInt uimm12 ) {
ARM64Instr* i = LibVEX_Alloc_inline(sizeof(ARM64Instr));
- i->tag = ARM64in_VLdStS;
+ i->tag = ARM64in_VLdStS;
i->ARM64in.VLdStS.isLoad = isLoad;
i->ARM64in.VLdStS.sD = sD;
i->ARM64in.VLdStS.rN = rN;
@@ -1015,7 +1030,7 @@
}
ARM64Instr* ARM64Instr_VLdStD ( Bool isLoad, HReg dD, HReg rN, UInt uimm12 ) {
ARM64Instr* i = LibVEX_Alloc_inline(sizeof(ARM64Instr));
- i->tag = ARM64in_VLdStD;
+ i->tag = ARM64in_VLdStD;
i->ARM64in.VLdStD.isLoad = isLoad;
i->ARM64in.VLdStD.dD = dD;
i->ARM64in.VLdStD.rN = rN;
@@ -1052,12 +1067,28 @@
}
ARM64Instr* ARM64Instr_VCvtSD ( Bool sToD, HReg dst, HReg src ) {
ARM64Instr* i = LibVEX_Alloc_inline(sizeof(ARM64Instr));
- i->tag = ARM64in_VCvtSD;
+ i->tag = ARM64in_VCvtSD;
i->ARM64in.VCvtSD.sToD = sToD;
i->ARM64in.VCvtSD.dst = dst;
i->ARM64in.VCvtSD.src = src;
return i;
}
+ARM64Instr* ARM64Instr_VCvtHS ( Bool hToS, HReg dst, HReg src ) {
+ ARM64Instr* i = LibVEX_Alloc_inline(sizeof(ARM64Instr));
+ i->tag = ARM64in_VCvtHS;
+ i->ARM64in.VCvtHS.hToS = hToS;
+ i->ARM64in.VCvtHS.dst = dst;
+ i->ARM64in.VCvtHS.src = src;
+ return i;
+}
+ARM64Instr* ARM64Instr_VCvtHD ( Bool hToD, HReg dst, HReg src ) {
+ ARM64Instr* i = LibVEX_Alloc_inline(sizeof(ARM64Instr));
+ i->tag = ARM64in_VCvtHD;
+ i->ARM64in.VCvtHD.hToD = hToD;
+ i->ARM64in.VCvtHD.dst = dst;
+ i->ARM64in.VCvtHD.src = src;
+ return i;
+}
ARM64Instr* ARM64Instr_VUnaryD ( ARM64FpUnaryOp op, HReg dst, HReg src ) {
ARM64Instr* i = LibVEX_Alloc_inline(sizeof(ARM64Instr));
i->tag = ARM64in_VUnaryD;
@@ -1534,6 +1565,21 @@
case ARM64in_MFence:
vex_printf("(mfence) dsb sy; dmb sy; isb");
return;
+ case ARM64in_VLdStH:
+ if (i->ARM64in.VLdStH.isLoad) {
+ vex_printf("ldr ");
+ ppHRegARM64asHreg(i->ARM64in.VLdStH.hD);
+ vex_printf(", %u(", i->ARM64in.VLdStH.uimm12);
+ ppHRegARM64(i->ARM64in.VLdStH.rN);
+ vex_printf(")");
+ } else {
+ vex_printf("str ");
+ vex_printf("%u(", i->ARM64in.VLdStH.uimm12);
+ ppHRegARM64(i->ARM64in.VLdStH.rN);
+ vex_printf("), ");
+ ppHRegARM64asHreg(i->ARM64in.VLdStH.hD);
+ }
+ return;
case ARM64in_VLdStS:
if (i->ARM64in.VLdStS.isLoad) {
vex_printf("ldr ");
@@ -1613,6 +1659,30 @@
ppHRegARM64(i->ARM64in.VCvtSD.src);
}
return;
+ case ARM64in_VCvtHS:
+ vex_printf("fcvt%s ", i->ARM64in.VCvtHS.hToS ? "h2s" : "s2h");
+ if (i->ARM64in.VCvtHS.hToS) {
+ ppHRegARM64asSreg(i->ARM64in.VCvtHS.dst);
+ vex_printf(", ");
+ ppHRegARM64asHreg(i->ARM64in.VCvtHS.src);
+ } else {
+ ppHRegARM64asHreg(i->ARM64in.VCvtHS.dst);
+ vex_printf(", ");
+ ppHRegARM64asSreg(i->ARM64in.VCvtHS.src);
+ }
+ return;
+ case ARM64in_VCvtHD:
+ vex_printf("fcvt%s ", i->ARM64in.VCvtHD.hToD ? "h2d" : "d2h");
+ if (i->ARM64in.VCvtHD.hToD) {
+ ppHRegARM64(i->ARM64in.VCvtHD.dst);
+ vex_printf(", ");
+ ppHRegARM64asHreg(i->ARM64in.VCvtHD.src);
+ } else {
+ ppHRegARM64asHreg(i->ARM64in.VCvtHD.dst);
+ vex_printf(", ");
+ ppHRegARM64(i->ARM64in.VCvtHD.src);
+ }
+ return;
case ARM64in_VUnaryD:
vex_printf("f%s ", showARM64FpUnaryOp(i->ARM64in.VUnaryD.op));
ppHRegARM64(i->ARM64in.VUnaryD.dst);
@@ -1986,6 +2056,14 @@
return;
case ARM64in_MFence:
return;
+ case ARM64in_VLdStH:
+ addHRegUse(u, HRmRead, i->ARM64in.VLdStH.rN);
+ if (i->ARM64in.VLdStH.isLoad) {
+ addHRegUse(u, HRmWrite, i->ARM64in.VLdStH.hD);
+ } else {
+ addHRegUse(u, HRmRead, i->ARM64in.VLdStH.hD);
+ }
+ return;
case ARM64in_VLdStS:
addHRegUse(u, HRmRead, i->ARM64in.VLdStS.rN);
if (i->ARM64in.VLdStS.isLoad) {
@@ -2021,6 +2099,14 @@
addHRegUse(u, HRmWrite, i->ARM64in.VCvtSD.dst);
addHRegUse(u, HRmRead, i->ARM64in.VCvtSD.src);
return;
+ case ARM64in_VCvtHS:
+ addHRegUse(u, HRmWrite, i->ARM64in.VCvtHS.dst);
+ addHRegUse(u, HRmRead, i->ARM64in.VCvtHS.src);
+ return;
+ case ARM64in_VCvtHD:
+ addHRegUse(u, HRmWrite, i->ARM64in.VCvtHD.dst);
+ addHRegUse(u, HRmRead, i->ARM64in.VCvtHD.src);
+ return;
case ARM64in_VUnaryD:
addHRegUse(u, HRmWrite, i->ARM64in.VUnaryD.dst);
addHRegUse(u, HRmRead, i->ARM64in.VUnaryD.src);
@@ -2230,6 +2316,10 @@
return;
case ARM64in_MFence:
return;
+ case ARM64in_VLdStH:
+ i->ARM64in.VLdStH.hD = lookupHRegRemap(m, i->ARM64in.VLdStH.hD);
+ i->ARM64in.VLdStH.rN = lookupHRegRemap(m, i->ARM64in.VLdStH.rN);
+ return;
case ARM64in_VLdStS:
i->ARM64in.VLdStS.sD = lookupHRegRemap(m, i->ARM64in.VLdStS.sD);
i->ARM64in.VLdStS.rN = lookupHRegRemap(m, i->ARM64in.VLdStS.rN);
@@ -2254,6 +2344,14 @@
i->ARM64in.VCvtSD.dst = lookupHRegRemap(m, i->ARM64in.VCvtSD.dst);
i->ARM64in.VCvtSD.src = lookupHRegRemap(m, i->ARM64in.VCvtSD.src);
return;
+ case ARM64in_VCvtHS:
+ i->ARM64in.VCvtHS.dst = lookupHRegRemap(m, i->ARM64in.VCvtHS.dst);
+ i->ARM64in.VCvtHS.src = lookupHRegRemap(m, i->ARM64in.VCvtHS.src);
+ return;
+ case ARM64in_VCvtHD:
+ i->ARM64in.VCvtHD.dst = lookupHRegRemap(m, i->ARM64in.VCvtHD.dst);
+ i->ARM64in.VCvtHD.src = lookupHRegRemap(m, i->ARM64in.VCvtHD.src);
+ return;
case ARM64in_VUnaryD:
i->ARM64in.VUnaryD.dst = lookupHRegRemap(m, i->ARM64in.VUnaryD.dst);
i->ARM64in.VUnaryD.src = lookupHRegRemap(m, i->ARM64in.VUnaryD.src);
@@ -2633,6 +2731,7 @@
#define X11011000 BITS8(1,1,0,1,1,0,0,0)
#define X11011010 BITS8(1,1,0,1,1,0,1,0)
#define X11011110 BITS8(1,1,0,1,1,1,1,0)
+#define X11100010 BITS8(1,1,1,0,0,0,1,0)
#define X11110001 BITS8(1,1,1,1,0,0,0,1)
#define X11110011 BITS8(1,1,1,1,0,0,1,1)
#define X11110101 BITS8(1,1,1,1,0,1,0,1)
@@ -3702,6 +3801,23 @@
// *p++ = 0xD5033F5F; /* clrex */
// goto done;
//}
+ case ARM64in_VLdStH: {
+ /* 01 111101 01 imm12 n t LDR Ht, [Xn|SP, #imm12 * 2]
+ 01 111101 00 imm12 n t STR Ht, [Xn|SP, #imm12 * 2]
+ */
+ UInt hD = dregEnc(i->ARM64in.VLdStH.hD);
+ UInt rN = iregEnc(i->ARM64in.VLdStH.rN);
+ UInt uimm12 = i->ARM64in.VLdStH.uimm12;
+ Bool isLD = i->ARM64in.VLdStH.isLoad;
+ vassert(uimm12 < 8192 && 0 == (uimm12 & 1));
+ uimm12 >>= 1;
+ vassert(uimm12 < (1<<12));
+ vassert(hD < 32);
+ vassert(rN < 31);
+ *p++ = X_2_6_2_12_5_5(X01, X111101, isLD ? X01 : X00,
+ uimm12, rN, hD);
+ goto done;
+ }
case ARM64in_VLdStS: {
/* 10 111101 01 imm12 n t LDR St, [Xn|SP, #imm12 * 4]
10 111101 00 imm12 n t STR St, [Xn|SP, #imm12 * 4]
@@ -3852,7 +3968,7 @@
goto done;
}
case ARM64in_VCvtSD: {
- /* 31 23 21 16 14 9 4
+ /* 31 23 21 16 14 9 4
000,11110, 00 10001 0,1 10000 n d FCVT Dd, Sn (S->D)
---------- 01 ----- 0,0 --------- FCVT Sd, Dn (D->S)
Rounding, when dst is smaller than src, is per the FPCR.
@@ -3866,6 +3982,36 @@
}
goto done;
}
+ case ARM64in_VCvtHS: {
+ /* 31 23 21 16 14 9 4
+ 000,11110, 11 10001 0,0 10000 n d FCVT Sd, Hn (H->S)
+ ---------- 00 ----- 1,1 --------- FCVT Hd, Sn (S->H)
+ Rounding, when dst is smaller than src, is per the FPCR.
+ */
+ UInt dd = dregEnc(i->ARM64in.VCvtHS.dst);
+ UInt nn = dregEnc(i->ARM64in.VCvtHS.src);
+ if (i->ARM64in.VCvtHS.hToS) {
+ *p++ = X_3_5_8_6_5_5(X000, X11110, X11100010, X010000, nn, dd);
+ } else {
+ *p++ = X_3_5_8_6_5_5(X000, X11110, X00100011, X110000, nn, dd);
+ }
+ goto done;
+ }
+ case ARM64in_VCvtHD: {
+ /* 31 23 21 16 14 9 4
+ 000,11110, 11 10001 0,1 10000 n d FCVT Dd, Hn (H->D)
+ ---------- 01 ----- 1,1 --------- FCVT Hd, Dn (D->H)
+ Rounding, when dst is smaller than src, is per the FPCR.
+ */
+ UInt dd = dregEnc(i->ARM64in.VCvtHD.dst);
+ UInt nn = dregEnc(i->ARM64in.VCvtHD.src);
+ if (i->ARM64in.VCvtHD.hToD) {
+ *p++ = X_3_5_8_6_5_5(X000, X11110, X11100010, X110000, nn, dd);
+ } else {
+ *p++ = X_3_5_8_6_5_5(X000, X11110, X01100011, X110000, nn, dd);
+ }
+ goto done;
+ }
case ARM64in_VUnaryD: {
/* 31 23 21 16 14 9 4
000,11110 01 1,0000 0,0 10000 n d FMOV Dd, Dn (not handled)
Modified: trunk/priv/host_arm64_defs.h
==============================================================================
--- trunk/priv/host_arm64_defs.h (original)
+++ trunk/priv/host_arm64_defs.h Mon Mar 30 10:01:51 2015
@@ -482,12 +482,15 @@
ARM64in_StrEX,
ARM64in_MFence,
/* ARM64in_V*: scalar ops involving vector registers */
- ARM64in_VLdStS, /* 32-bit FP load/store, with imm offset */
- ARM64in_VLdStD, /* 64-bit FP load/store, with imm offset */
- ARM64in_VLdStQ,
+ ARM64in_VLdStH, /* ld/st to/from low 16 bits of vec reg, imm offset */
+ ARM64in_VLdStS, /* ld/st to/from low 32 bits of vec reg, imm offset */
+ ARM64in_VLdStD, /* ld/st to/from low 64 bits of vec reg, imm offset */
+ ARM64in_VLdStQ, /* ld/st to/from all 128 bits of vec reg, no offset */
ARM64in_VCvtI2F,
ARM64in_VCvtF2I,
- ARM64in_VCvtSD,
+ ARM64in_VCvtSD, /* scalar 32 bit FP <--> 64 bit FP */
+ ARM64in_VCvtHS, /* scalar 16 bit FP <--> 32 bit FP */
+ ARM64in_VCvtHD, /* scalar 16 bit FP <--> 64 bit FP */
ARM64in_VUnaryD,
ARM64in_VUnaryS,
ARM64in_VBinD,
@@ -670,21 +673,28 @@
struct {
} MFence;
/* --- INSTRUCTIONS INVOLVING VECTOR REGISTERS --- */
- /* 32-bit Fp load/store */
+ /* ld/st to/from low 16 bits of vec reg, imm offset */
+ struct {
+ Bool isLoad;
+ HReg hD;
+ HReg rN;
+ UInt uimm12; /* 0 .. 8190 inclusive, 0 % 2 */
+ } VLdStH;
+ /* ld/st to/from low 32 bits of vec reg, imm offset */
struct {
Bool isLoad;
HReg sD;
HReg rN;
UInt uimm12; /* 0 .. 16380 inclusive, 0 % 4 */
} VLdStS;
- /* 64-bit Fp load/store */
+ /* ld/st to/from low 64 bits of vec reg, imm offset */
struct {
Bool isLoad;
HReg dD;
HReg rN;
UInt uimm12; /* 0 .. 32760 inclusive, 0 % 8 */
} VLdStD;
- /* 128-bit Vector load/store. */
+ /* ld/st to/from all 128 bits of vec reg, no offset */
struct {
Bool isLoad;
HReg rQ; // data
@@ -704,13 +714,24 @@
UChar armRM; // ARM encoded RM:
// 00=nearest, 01=+inf, 10=-inf, 11=zero
} VCvtF2I;
- /* Convert between 32-bit and 64-bit FP values (both
- ways). (FCVT) */
+ /* Convert between 32-bit and 64-bit FP values (both ways). (FCVT) */
struct {
Bool sToD; /* True: F32->F64. False: F64->F32 */
HReg dst;
HReg src;
} VCvtSD;
+ /* Convert between 16-bit and 32-bit FP values (both ways). (FCVT) */
+ struct {
+ Bool hToS; /* True: F16->F32. False: F32->F16 */
+ HReg dst;
+ HReg src;
+ } VCvtHS;
+ /* Convert between 16-bit and 64-bit FP values (both ways). (FCVT) */
+ struct {
+ Bool hToD; /* True: F16->F64. False: F64->F16 */
+ HReg dst;
+ HReg src;
+ } VCvtHD;
/* 64-bit FP unary */
struct {
ARM64FpUnaryOp op;
@@ -887,6 +908,8 @@
extern ARM64Instr* ARM64Instr_LdrEX ( Int szB );
extern ARM64Instr* ARM64Instr_StrEX ( Int szB );
extern ARM64Instr* ARM64Instr_MFence ( void );
+extern ARM64Instr* ARM64Instr_VLdStH ( Bool isLoad, HReg sD, HReg rN,
+ UInt uimm12 /* 0 .. 8190, 0 % 2 */ );
extern ARM64Instr* ARM64Instr_VLdStS ( Bool isLoad, HReg sD, HReg rN,
UInt uimm12 /* 0 .. 16380, 0 % 4 */ );
extern ARM64Instr* ARM64Instr_VLdStD ( Bool isLoad, HReg dD, HReg rN,
@@ -896,6 +919,8 @@
extern ARM64Instr* ARM64Instr_VCvtF2I ( ARM64CvtOp how, HReg rD, HReg rS,
UChar armRM );
extern ARM64Instr* ARM64Instr_VCvtSD ( Bool sToD, HReg dst, HReg src );
+extern ARM64Instr* ARM64Instr_VCvtHS ( Bool hToS, HReg dst, HReg src );
+extern ARM64Instr* ARM64Instr_VCvtHD ( Bool hToD, HReg dst, HReg src );
extern ARM64Instr* ARM64Instr_VUnaryD ( ARM64FpUnaryOp op, HReg dst, HReg src );
extern ARM64Instr* ARM64Instr_VUnaryS ( ARM64FpUnaryOp op, HReg dst, HReg src );
extern ARM64Instr* ARM64Instr_VBinD ( ARM64FpBinOp op, HReg, HReg, HReg );
Modified: trunk/priv/host_arm64_isel.c
==============================================================================
--- trunk/priv/host_arm64_isel.c (original)
+++ trunk/priv/host_arm64_isel.c Mon Mar 30 10:01:51 2015
@@ -40,23 +40,6 @@
#include "host_arm64_defs.h"
-//ZZ /*---------------------------------------------------------*/
-//ZZ /*--- ARMvfp control word stuff ---*/
-//ZZ /*---------------------------------------------------------*/
-//ZZ
-//ZZ /* Vex-generated code expects to run with the FPU set as follows: all
-//ZZ exceptions masked, round-to-nearest, non-vector mode, with the NZCV
-//ZZ flags cleared, and FZ (flush to zero) disabled. Curiously enough,
-//ZZ this corresponds to a FPSCR value of zero.
-//ZZ
-//ZZ fpscr should therefore be zero on entry to Vex-generated code, and
-//ZZ should be unchanged at exit. (Or at least the bottom 28 bits
-//ZZ should be zero).
-//ZZ */
-//ZZ
-//ZZ #define DEFAULT_FPSCR 0
-
-
/*---------------------------------------------------------*/
/*--- ISelEnv ---*/
/*---------------------------------------------------------*/
@@ -223,6 +206,9 @@
static HReg iselFltExpr_wrk ( ISelEnv* env, IRExpr* e );
static HReg iselFltExpr ( ISelEnv* env, IRExpr* e );
+static HReg iselF16Expr_wrk ( ISelEnv* env, IRExpr* e );
+static HReg iselF16Expr ( ISelEnv* env, IRExpr* e );
+
static HReg iselV128Expr_wrk ( ISelEnv* env, IRExpr* e );
static HReg iselV128Expr ( ISelEnv* env, IRExpr* e );
@@ -1360,6 +1346,16 @@
return ARM64cc_NE;
}
+ /* --- patterns rooted at: CmpNEZ16 --- */
+
+ if (e->tag == Iex_Unop
+ && e->Iex.Unop.op == Iop_CmpNEZ16) {
+ HReg r1 = iselIntExpr_R(env, e->Iex.Unop.arg);
+ ARM64RIL* xFFFF = mb_mkARM64RIL_I(0xFFFF);
+ addInstr(env, ARM64Instr_Test(r1, xFFFF));
+ return ARM64cc_NE;
+ }
+
/* --- patterns rooted at: CmpNEZ64 --- */
if (e->tag == Iex_Unop
@@ -1854,6 +1850,7 @@
addInstr(env, ARM64Instr_VXfromDorS(dst, src, False/*!fromD*/));
return dst;
}
+ case Iop_1Sto16:
case Iop_1Sto32:
case Iop_1Sto64: {
/* As with the iselStmt case for 'tmp:I1 = expr', we could
@@ -3051,6 +3048,12 @@
addInstr(env, ARM64Instr_VCvtSD(True/*sToD*/, dst, src));
return dst;
}
+ case Iop_F16toF64: {
+ HReg src = iselF16Expr(env, e->Iex.Unop.arg);
+ HReg dst = newVRegD(env);
+ addInstr(env, ARM64Instr_VCvtHD(True/*hToD*/, dst, src));
+ return dst;
+ }
case Iop_I32UtoF64:
case Iop_I32StoF64: {
/* Rounding mode is not involved here, since the
@@ -3226,6 +3229,12 @@
addInstr(env, ARM64Instr_VUnaryS(ARM64fpu_ABS, dst, src));
return dst;
}
+ case Iop_F16toF32: {
+ HReg src = iselF16Expr(env, e->Iex.Unop.arg);
+ HReg dst = newVRegD(env);
+ addInstr(env, ARM64Instr_VCvtHS(True/*hToS*/, dst, src));
+ return dst;
+ }
default:
break;
}
@@ -3253,7 +3262,7 @@
HReg srcD = iselDblExpr(env, e->Iex.Binop.arg2);
set_FPCR_rounding_mode(env, e->Iex.Binop.arg1);
HReg dstS = newVRegD(env);
- addInstr(env, ARM64Instr_VCvtSD(False/*dToS*/, dstS, srcD));
+ addInstr(env, ARM64Instr_VCvtSD(False/*!sToD*/, dstS, srcD));
return dstS;
}
case Iop_I32UtoF32:
@@ -3316,6 +3325,70 @@
/*---------------------------------------------------------*/
+/*--- ISEL: Floating point expressions (16 bit) ---*/
+/*---------------------------------------------------------*/
+
+/* Compute a 16-bit floating point value into a register, the identity
+ of which is returned. As with iselIntExpr_R, the reg may be either
+ real or virtual; in any case it must not be changed by subsequent
+ code emitted by the caller. Values are generated into HRcFlt64
+ registers despite the values themselves being Ity_F16s. */
+
+static HReg iselF16Expr ( ISelEnv* env, IRExpr* e )
+{
+ HReg r = iselF16Expr_wrk( env, e );
+# if 0
+ vex_printf("\n"); ppIRExpr(e); vex_printf("\n");
+# endif
+ vassert(hregClass(r) == HRcFlt64);
+ vassert(hregIsVirtual(r));
+ return r;
+}
+
+/* DO NOT CALL THIS DIRECTLY */
+static HReg iselF16Expr_wrk ( ISelEnv* env, IRExpr* e )
+{
+ IRType ty = typeOfIRExpr(env->type_env,e);
+ vassert(e);
+ vassert(ty == Ity_F16);
+
+ if (e->tag == Iex_Get) {
+ Int offs = e->Iex.Get.offset;
+ if (offs >= 0 && offs < 8192 && 0 == (offs & 1)) {
+ HReg rD = newVRegD(env);
+ HReg rN = get_baseblock_register();
+ addInstr(env, ARM64Instr_VLdStH(True/*isLoad*/, rD, rN, offs));
+ return rD;
+ }
+ }
+
+ if (e->tag == Iex_Binop) {
+ switch (e->Iex.Binop.op) {
+ case Iop_F32toF16: {
+ HReg srcS = iselFltExpr(env, e->Iex.Binop.arg2);
+ set_FPCR_rounding_mode(env, e->Iex.Binop.arg1);
+ HReg dstH = newVRegD(env);
+ addInstr(env, ARM64Instr_VCvtHS(False/*!hToS*/, dstH, srcS));
+ return dstH;
+ }
+ case Iop_F64toF16: {
+ HReg srcD = iselDblExpr(env, e->Iex.Binop.arg2);
+ set_FPCR_rounding_mode(env, e->Iex.Binop.arg1);
+ HReg dstH = newVRegD(env);
+ addInstr(env, ARM64Instr_VCvtHD(False/*!hToD*/, dstH, srcD));
+ return dstH;
+ }
+ default:
+ break;
+ }
+ }
+
+ ppIRExpr(e);
+ vpanic("iselF16Expr_wrk");
+}
+
+
+/*---------------------------------------------------------*/
/*--- ISEL: Vector expressions (256 bit) ---*/
/*---------------------------------------------------------*/
@@ -3534,9 +3607,15 @@
return;
}
if (tyd == Ity_F32 && 0 == (offs & 3) && offs < (4<<12)) {
- HReg dD = iselFltExpr(env, stmt->Ist.Put.data);
+ HReg sD = iselFltExpr(env, stmt->Ist.Put.data);
+ HReg bbp = get_baseblock_register();
+ addInstr(env, ARM64Instr_VLdStS(False/*!isLoad*/, sD, bbp, offs));
+ return;
+ }
+ if (tyd == Ity_F16 && 0 == (offs & 1) && offs < (2<<12)) {
+ HReg hD = iselF16Expr(env, stmt->Ist.Put.data);
HReg bbp = get_baseblock_register();
- addInstr(env, ARM64Instr_VLdStS(False/*!isLoad*/, dD, bbp, offs));
+ addInstr(env, ARM64Instr_VLdStH(False/*!isLoad*/, hD, bbp, offs));
return;
}
@@ -3965,6 +4044,7 @@
hreg = mkHReg(True, HRcInt64, 0, j++);
hregHI = mkHReg(True, HRcInt64, 0, j++);
break;
+ case Ity_F16: // we'll use HRcFlt64 regs for F16 too
case Ity_F32: // we'll use HRcFlt64 regs for F32 too
case Ity_F64:
hreg = mkHReg(True, HRcFlt64, 0, j++);
|
|
From: <sv...@va...> - 2015-03-30 08:50:36
|
Author: sewardj
Date: Mon Mar 30 09:50:27 2015
New Revision: 3110
Log:
Add IR level support for 16 bit floating point types (Ity_F16) and add
four new IROps that use it:
Iop_F16toF64, Iop_F64toF16, Iop_F16toF32, Iop_F32toF16.
Modified:
trunk/priv/ir_defs.c
trunk/priv/ir_opt.c
trunk/pub/libvex_ir.h
Modified: trunk/priv/ir_defs.c
==============================================================================
--- trunk/priv/ir_defs.c (original)
+++ trunk/priv/ir_defs.c Mon Mar 30 09:50:27 2015
@@ -54,6 +54,7 @@
case Ity_I32: vex_printf( "I32"); break;
case Ity_I64: vex_printf( "I64"); break;
case Ity_I128: vex_printf( "I128"); break;
+ case Ity_F16: vex_printf( "F16"); break;
case Ity_F32: vex_printf( "F32"); break;
case Ity_F64: vex_printf( "F64"); break;
case Ity_F128: vex_printf( "F128"); break;
@@ -340,6 +341,11 @@
case Iop_RecpExpF64: vex_printf("RecpExpF64"); return;
case Iop_RecpExpF32: vex_printf("RecpExpF32"); return;
+ case Iop_F16toF64: vex_printf("F16toF64"); return;
+ case Iop_F64toF16: vex_printf("F64toF16"); return;
+ case Iop_F16toF32: vex_printf("F16toF32"); return;
+ case Iop_F32toF16: vex_printf("F32toF16"); return;
+
case Iop_QAdd32S: vex_printf("QAdd32S"); return;
case Iop_QSub32S: vex_printf("QSub32S"); return;
case Iop_Add16x2: vex_printf("Add16x2"); return;
@@ -2802,7 +2808,12 @@
case Iop_I64StoF32: BINARY(ity_RMode,Ity_I64, Ity_F32);
case Iop_F32toF64: UNARY(Ity_F32, Ity_F64);
+ case Iop_F16toF64: UNARY(Ity_F16, Ity_F64);
+ case Iop_F16toF32: UNARY(Ity_F16, Ity_F32);
+
case Iop_F64toF32: BINARY(ity_RMode,Ity_F64, Ity_F32);
+ case Iop_F64toF16: BINARY(ity_RMode,Ity_F64, Ity_F16);
+ case Iop_F32toF16: BINARY(ity_RMode,Ity_F32, Ity_F16);
case Iop_ReinterpI64asF64: UNARY(Ity_I64, Ity_F64);
case Iop_ReinterpF64asI64: UNARY(Ity_F64, Ity_I64);
@@ -3577,7 +3588,7 @@
case Ity_INVALID: case Ity_I1:
case Ity_I8: case Ity_I16: case Ity_I32:
case Ity_I64: case Ity_I128:
- case Ity_F32: case Ity_F64: case Ity_F128:
+ case Ity_F16: case Ity_F32: case Ity_F64: case Ity_F128:
case Ity_D32: case Ity_D64: case Ity_D128:
case Ity_V128: case Ity_V256:
return True;
@@ -4615,6 +4626,7 @@
case Ity_I32: return 4;
case Ity_I64: return 8;
case Ity_I128: return 16;
+ case Ity_F16: return 2;
case Ity_F32: return 4;
case Ity_F64: return 8;
case Ity_F128: return 16;
Modified: trunk/priv/ir_opt.c
==============================================================================
--- trunk/priv/ir_opt.c (original)
+++ trunk/priv/ir_opt.c Mon Mar 30 09:50:27 2015
@@ -6482,7 +6482,7 @@
case Ity_I1: case Ity_I8: case Ity_I16:
case Ity_I32: case Ity_I64: case Ity_I128:
break;
- case Ity_F32: case Ity_F64: case Ity_F128:
+ case Ity_F16: case Ity_F32: case Ity_F64: case Ity_F128:
case Ity_V128: case Ity_V256:
*hasVorFtemps = True;
break;
Modified: trunk/pub/libvex_ir.h
==============================================================================
--- trunk/pub/libvex_ir.h (original)
+++ trunk/pub/libvex_ir.h Mon Mar 30 09:50:27 2015
@@ -225,6 +225,7 @@
Ity_I32,
Ity_I64,
Ity_I128, /* 128-bit scalar */
+ Ity_F16, /* 16 bit float */
Ity_F32, /* IEEE 754 float */
Ity_F64, /* IEEE 754 double */
Ity_D32, /* 32-bit Decimal floating point */
@@ -759,6 +760,14 @@
Iop_RecpExpF64, /* FRECPX d :: IRRoundingMode(I32) x F64 -> F64 */
Iop_RecpExpF32, /* FRECPX s :: IRRoundingMode(I32) x F32 -> F32 */
+ /* ------------------ 16-bit scalar FP ------------------ */
+
+ Iop_F16toF64, /* F16 -> F64 */
+ Iop_F64toF16, /* IRRoundingMode(I32) x F64 -> F16 */
+
+ Iop_F16toF32, /* F16 -> F32 */
+ Iop_F32toF16, /* IRRoundingMode(I32) x F32 -> F16 */
+
/* ------------------ 32-bit SIMD Integer ------------------ */
/* 32x1 saturating add/sub (ok, well, not really SIMD :) */
|
|
From: Shujunjun <shu...@hu...> - 2015-03-30 08:10:43
|
>Also, using dlopen() with RTLD_NEXT enables the construction of a shared library
that can "wrap" any call to a function that has dynamic linkage. Any call
that goes through the PLT [ProgramLinkageTable] can be intercepted this way.
Hi, John Reiser
Thanks a lot for your suggestion.
I think you give me a nice way to trace a function linked from a shared library.
But there some problems for me to using your method.
a. Trace a funtion's input and output is a part function of my tool, the tool will do some other function depend on valgrind, so I mybe still want to find a way to implement this function in valgrind if it can support.
b. The function I traced usually not linked from a shared library. Usually, it's a application level funtion and I as a tool developer cloud not force them change to a shared library.
So, I mybe still want to know: how can my valgrind tool know the input args and output value of a special guest function ?
shu...@hu...
Best Regards.
________________________________________
发件人: John Reiser [jr...@bi...]
发送时间: 2015年3月30日 13:01
收件人: val...@li...
主题: Re: [Valgrind-developers] Ask for how to know a function's input args and return value
> I want to trace a special function used in the guest program.
> For example, a function defined like this:
> */msg_type * alloc_msg(char type, int num)
> /*When the guest program call this special function "alloc_msg", my valgrind tool can know the input args:"type" and "num", and when "alloc_msg" return, my valgrind tool can know the return value.
Note that in some cases similar functionality is provided outside of valgrind
by tools such as ltrace.
Also, using dlopen() with RTLD_NEXT enables the construction of a shared library
that can "wrap" any call to a function that has dynamic linkage. Any call
that goes through the PLT [ProgramLinkageTable] can be intercepted this way.
Calls to a C static function cannot, nor calls to an inlined function.
Once built, the shared library can be activated for any process without
re-compilation or re-linking, by using the shell environment variable LD_PRELOAD.
Consult "man dlopen" and search the 'net for a complete example.
Both of these are not exactly what you asked for, but they are
substantially similar in significant ways, avoid using valgrind altogether,
and usually execute at least 10 times faster than valgrind.
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Valgrind-developers mailing list
Val...@li...
https://lists.sourceforge.net/lists/listinfo/valgrind-developers |
|
From: John R. <jr...@bi...> - 2015-03-30 05:01:28
|
> I want to trace a special function used in the guest program. > For example, a function defined like this: > */msg_type * alloc_msg(char type, int num) > /*When the guest program call this special function "alloc_msg", my valgrind tool can know the input args:"type" and "num", and when "alloc_msg" return, my valgrind tool can know the return value. Note that in some cases similar functionality is provided outside of valgrind by tools such as ltrace. Also, using dlopen() with RTLD_NEXT enables the construction of a shared library that can "wrap" any call to a function that has dynamic linkage. Any call that goes through the PLT [ProgramLinkageTable] can be intercepted this way. Calls to a C static function cannot, nor calls to an inlined function. Once built, the shared library can be activated for any process without re-compilation or re-linking, by using the shell environment variable LD_PRELOAD. Consult "man dlopen" and search the 'net for a complete example. Both of these are not exactly what you asked for, but they are substantially similar in significant ways, avoid using valgrind altogether, and usually execute at least 10 times faster than valgrind. |
|
From: Shujunjun <shu...@hu...> - 2015-03-30 03:30:16
|
Hi, Sorry for my first time send email to valgrind, if wrong, can you transmit this email to right people ? Thanks a lot. I have a problem when developing a valgrind tool(function_trace) for my business code. I want to trace a special function used in the guest program. For example, a function defined like this: msg_type * alloc_msg(char type, int num) When the guest program call this special function "alloc_msg", my valgrind tool can know the input args:"type" and "num", and when "alloc_msg" return, my valgrind tool can know the return value. Is there any way to implement it ? Or, which Valgrind tools(such as memcheck, callgrind) implement such functions ? I can learn from them. Or, do valgrind had interfaces to get such information? ps, I develop my valgrind tool base on "valgrind-3.10.1" download form "http://valgrind.org/" . Thank you for your help. shu...@hu...<mailto:shu...@hu...> Best Regards. |
|
From: <sv...@va...> - 2015-03-30 00:06:03
|
Author: petarj
Date: Mon Mar 30 01:05:54 2015
New Revision: 15049
Log:
mips: update list of ignored files in auxprogs
Update the ignore list with:
- getoff-mips32-linux
- getoff-mips64-linux
Modified:
trunk/auxprogs/ (props changed)
|