Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(738)

Unified Diff: crosstest/mem_intrin_main.cpp

Issue 1278173009: Inline memove for small constant sizes and refactor memcpy and memset. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix memmove and add tests Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: crosstest/mem_intrin_main.cpp
diff --git a/crosstest/mem_intrin_main.cpp b/crosstest/mem_intrin_main.cpp
index 70e3a6784a16c371b27974c6f1f4260e189fdcf3..118b9b9c2e9b80ef5c822a0ebb4017502533651d 100644
--- a/crosstest/mem_intrin_main.cpp
+++ b/crosstest/mem_intrin_main.cpp
@@ -12,27 +12,6 @@ namespace Subzero_ {
#define XSTR(s) STR(s)
#define STR(s) #s
-void testFixedLen(size_t &TotalTests, size_t &Passes, size_t &Failures) {
-#define do_test_fixed(test_func) \
- for (uint8_t init_val = 0; init_val < 100; ++init_val) { \
- ++TotalTests; \
- int llc_result = test_func(init_val); \
- int sz_result = Subzero_::test_func(init_val); \
- if (llc_result == sz_result) { \
- ++Passes; \
- } else { \
- ++Failures; \
- printf("Failure (%s): init_val=%d, llc=%d, sz=%d\n", STR(test_func), \
- init_val, llc_result, sz_result); \
- } \
- }
-
- do_test_fixed(memcpy_test_fixed_len);
- do_test_fixed(memmove_test_fixed_len);
- do_test_fixed(memset_test_fixed_len)
-#undef do_test_fixed
-}
-
void testVariableLen(size_t &TotalTests, size_t &Passes, size_t &Failures) {
uint8_t buf[256];
uint8_t buf2[256];
@@ -58,6 +37,287 @@ void testVariableLen(size_t &TotalTests, size_t &Passes, size_t &Failures) {
#undef do_test_variable
}
+void testFixedLen(size_t &TotalTests, size_t &Passes, size_t &Failures) {
+#define do_test_fixed(test_func, NBYTES) \
+ for (uint8_t init_val = 0; init_val < 100; ++init_val) { \
+ ++TotalTests; \
+ int llc_result = test_func##_##NBYTES(init_val); \
+ int sz_result = Subzero_::test_func##_##NBYTES(init_val); \
+ if (llc_result == sz_result) { \
+ ++Passes; \
+ } else { \
+ ++Failures; \
+ printf("Failure (%s): init_val=%d, len=%d, llc=%d, sz=%d\n", \
+ STR(test_func), init_val, NBYTES, llc_result, sz_result); \
+ } \
+ }
+
+#define do_all_test_fixed(NBYTES) \
+ do_test_fixed(memcpy_test_fixed_len, NBYTES); \
+ do_test_fixed(memmove_test_fixed_len, NBYTES); \
+ do_test_fixed(memset_test_fixed_len, NBYTES);
+
+ do_all_test_fixed(1);
+ do_all_test_fixed(2);
+ do_all_test_fixed(3);
+ do_all_test_fixed(4);
+ do_all_test_fixed(5);
+ do_all_test_fixed(6);
+ do_all_test_fixed(7);
+ do_all_test_fixed(8);
+ do_all_test_fixed(9);
+ do_all_test_fixed(10);
+ do_all_test_fixed(11);
+ do_all_test_fixed(12);
+ do_all_test_fixed(13);
+ do_all_test_fixed(14);
+ do_all_test_fixed(15);
+ do_all_test_fixed(16);
+ do_all_test_fixed(17);
+ do_all_test_fixed(18);
+ do_all_test_fixed(19);
+ do_all_test_fixed(20);
+ do_all_test_fixed(21);
+ do_all_test_fixed(22);
+ do_all_test_fixed(23);
+ do_all_test_fixed(24);
+ do_all_test_fixed(25);
+ do_all_test_fixed(26);
+ do_all_test_fixed(27);
+ do_all_test_fixed(28);
+ do_all_test_fixed(29);
+ do_all_test_fixed(30);
+ do_all_test_fixed(31);
+ do_all_test_fixed(32);
+ do_all_test_fixed(33);
+ do_all_test_fixed(34);
+ do_all_test_fixed(35);
+ do_all_test_fixed(36);
+ do_all_test_fixed(37);
+ do_all_test_fixed(38);
+ do_all_test_fixed(39);
+ do_all_test_fixed(40);
+ do_all_test_fixed(41);
+ do_all_test_fixed(42);
+ do_all_test_fixed(43);
+ do_all_test_fixed(44);
+ do_all_test_fixed(45);
+ do_all_test_fixed(46);
+ do_all_test_fixed(47);
+ do_all_test_fixed(48);
+ do_all_test_fixed(49);
+ do_all_test_fixed(50);
+ do_all_test_fixed(51);
+ do_all_test_fixed(52);
+ do_all_test_fixed(53);
+ do_all_test_fixed(54);
+ do_all_test_fixed(55);
+ do_all_test_fixed(56);
+ do_all_test_fixed(57);
+ do_all_test_fixed(58);
+ do_all_test_fixed(59);
+ do_all_test_fixed(60);
+ do_all_test_fixed(61);
+ do_all_test_fixed(62);
+ do_all_test_fixed(63);
+ do_all_test_fixed(64);
+ do_all_test_fixed(65);
+ do_all_test_fixed(66);
+ do_all_test_fixed(67);
+ do_all_test_fixed(68);
+ do_all_test_fixed(69);
+ do_all_test_fixed(70);
+ do_all_test_fixed(71);
+ do_all_test_fixed(72);
+ do_all_test_fixed(73);
+ do_all_test_fixed(74);
+ do_all_test_fixed(75);
+ do_all_test_fixed(76);
+ do_all_test_fixed(77);
+ do_all_test_fixed(78);
+ do_all_test_fixed(79);
+ do_all_test_fixed(80);
+ do_all_test_fixed(81);
+ do_all_test_fixed(82);
+ do_all_test_fixed(83);
+ do_all_test_fixed(84);
+ do_all_test_fixed(85);
+ do_all_test_fixed(86);
+ do_all_test_fixed(87);
+ do_all_test_fixed(88);
+ do_all_test_fixed(89);
+ do_all_test_fixed(90);
+ do_all_test_fixed(91);
+ do_all_test_fixed(92);
+ do_all_test_fixed(93);
+ do_all_test_fixed(94);
+ do_all_test_fixed(95);
+ do_all_test_fixed(96);
+ do_all_test_fixed(97);
+ do_all_test_fixed(98);
+ do_all_test_fixed(99);
+ do_all_test_fixed(100);
+ do_all_test_fixed(101);
+ do_all_test_fixed(102);
+ do_all_test_fixed(103);
+ do_all_test_fixed(104);
+ do_all_test_fixed(105);
+ do_all_test_fixed(106);
+ do_all_test_fixed(107);
+ do_all_test_fixed(108);
+ do_all_test_fixed(109);
+ do_all_test_fixed(110);
+ do_all_test_fixed(111);
+ do_all_test_fixed(112);
+ do_all_test_fixed(113);
+ do_all_test_fixed(114);
+ do_all_test_fixed(115);
+ do_all_test_fixed(116);
+ do_all_test_fixed(117);
+ do_all_test_fixed(118);
+ do_all_test_fixed(119);
+ do_all_test_fixed(120);
+ do_all_test_fixed(121);
+ do_all_test_fixed(122);
+ do_all_test_fixed(123);
+ do_all_test_fixed(124);
+ do_all_test_fixed(125);
+ do_all_test_fixed(126);
+ do_all_test_fixed(127);
+ do_all_test_fixed(128);
+ do_all_test_fixed(129);
+ do_all_test_fixed(130);
+ do_all_test_fixed(131);
+ do_all_test_fixed(132);
+ do_all_test_fixed(133);
+ do_all_test_fixed(134);
+ do_all_test_fixed(135);
+ do_all_test_fixed(136);
+ do_all_test_fixed(137);
+ do_all_test_fixed(138);
+ do_all_test_fixed(139);
+ do_all_test_fixed(140);
+ do_all_test_fixed(141);
+ do_all_test_fixed(142);
+ do_all_test_fixed(143);
+ do_all_test_fixed(144);
+ do_all_test_fixed(145);
+ do_all_test_fixed(146);
+ do_all_test_fixed(147);
+ do_all_test_fixed(148);
+ do_all_test_fixed(149);
+ do_all_test_fixed(150);
+ do_all_test_fixed(151);
+ do_all_test_fixed(152);
+ do_all_test_fixed(153);
+ do_all_test_fixed(154);
+ do_all_test_fixed(155);
+ do_all_test_fixed(156);
+ do_all_test_fixed(157);
+ do_all_test_fixed(158);
+ do_all_test_fixed(159);
+ do_all_test_fixed(160);
+ do_all_test_fixed(161);
+ do_all_test_fixed(162);
+ do_all_test_fixed(163);
+ do_all_test_fixed(164);
+ do_all_test_fixed(165);
+ do_all_test_fixed(166);
+ do_all_test_fixed(167);
+ do_all_test_fixed(168);
+ do_all_test_fixed(169);
+ do_all_test_fixed(170);
+ do_all_test_fixed(171);
+ do_all_test_fixed(172);
+ do_all_test_fixed(173);
+ do_all_test_fixed(174);
+ do_all_test_fixed(175);
+ do_all_test_fixed(176);
+ do_all_test_fixed(177);
+ do_all_test_fixed(178);
+ do_all_test_fixed(179);
+ do_all_test_fixed(180);
+ do_all_test_fixed(181);
+ do_all_test_fixed(182);
+ do_all_test_fixed(183);
+ do_all_test_fixed(184);
+ do_all_test_fixed(185);
+ do_all_test_fixed(186);
+ do_all_test_fixed(187);
+ do_all_test_fixed(188);
+ do_all_test_fixed(189);
+ do_all_test_fixed(190);
+ do_all_test_fixed(191);
+ do_all_test_fixed(192);
+ do_all_test_fixed(193);
+ do_all_test_fixed(194);
+ do_all_test_fixed(195);
+ do_all_test_fixed(196);
+ do_all_test_fixed(197);
+ do_all_test_fixed(198);
+ do_all_test_fixed(199);
+ do_all_test_fixed(200);
+ do_all_test_fixed(201);
+ do_all_test_fixed(202);
+ do_all_test_fixed(203);
+ do_all_test_fixed(204);
+ do_all_test_fixed(205);
+ do_all_test_fixed(206);
+ do_all_test_fixed(207);
+ do_all_test_fixed(208);
+ do_all_test_fixed(209);
+ do_all_test_fixed(210);
+ do_all_test_fixed(211);
+ do_all_test_fixed(212);
+ do_all_test_fixed(213);
+ do_all_test_fixed(214);
+ do_all_test_fixed(215);
+ do_all_test_fixed(216);
+ do_all_test_fixed(217);
+ do_all_test_fixed(218);
+ do_all_test_fixed(219);
+ do_all_test_fixed(220);
+ do_all_test_fixed(221);
+ do_all_test_fixed(222);
+ do_all_test_fixed(223);
+ do_all_test_fixed(224);
+ do_all_test_fixed(225);
+ do_all_test_fixed(226);
+ do_all_test_fixed(227);
+ do_all_test_fixed(228);
+ do_all_test_fixed(229);
+ do_all_test_fixed(230);
+ do_all_test_fixed(231);
+ do_all_test_fixed(232);
+ do_all_test_fixed(233);
+ do_all_test_fixed(234);
+ do_all_test_fixed(235);
+ do_all_test_fixed(236);
+ do_all_test_fixed(237);
+ do_all_test_fixed(238);
+ do_all_test_fixed(239);
+ do_all_test_fixed(240);
+ do_all_test_fixed(241);
+ do_all_test_fixed(242);
+ do_all_test_fixed(243);
+ do_all_test_fixed(244);
+ do_all_test_fixed(245);
+ do_all_test_fixed(246);
+ do_all_test_fixed(247);
+ do_all_test_fixed(248);
+ do_all_test_fixed(249);
+ do_all_test_fixed(250);
+ do_all_test_fixed(251);
+ do_all_test_fixed(252);
+ do_all_test_fixed(253);
+ do_all_test_fixed(254);
+ do_all_test_fixed(255);
+ do_all_test_fixed(256);
+
+#undef do_test_fixed
+#undef do_all_test_fixed
+}
+
int main(int argc, char **argv) {
unsigned TotalTests = 0;
unsigned Passes = 0;

Powered by Google App Engine
This is Rietveld 408576698