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

Side by Side Diff: unit_test/planar_test.cc

Issue 2424233004: Half float neon port, enable O2 for neon, and denormal test. (Closed)
Patch Set: Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2011 The LibYuv Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 2103 matching lines...) Expand 10 before | Expand all | Expand 10 after
2114 2114
2115 for (i = 0; i < y_plane_size; ++i) { 2115 for (i = 0; i < y_plane_size; ++i) {
2116 EXPECT_EQ(dst_c[i], dst_opt[i]); 2116 EXPECT_EQ(dst_c[i], dst_opt[i]);
2117 } 2117 }
2118 2118
2119 free_aligned_buffer_page_end(orig_y); 2119 free_aligned_buffer_page_end(orig_y);
2120 free_aligned_buffer_page_end(dst_c); 2120 free_aligned_buffer_page_end(dst_c);
2121 free_aligned_buffer_page_end(dst_opt); 2121 free_aligned_buffer_page_end(dst_opt);
2122 } 2122 }
2123 2123
2124 // 5 bit exponent with bias of 15 will underflow to a denormal if scale causes
2125 // exponent to be less than 0. 15 - log2(65536) = -1/ This shouldnt normally
2126 // happen sicne scale is 1/(1<<bits) where bits is 9, 10 or 12.
hubbe 2016/10/18 22:40:42 s/sicne/since/ Also, some people at intel are wor
2127 TEST_F(LibYUVPlanarTest, TestHalfFloatPlane_denormal) {
2128 int i, j;
2129 const int y_plane_size = benchmark_width_ * benchmark_height_ * 2;
2130
2131 align_buffer_page_end(orig_y, y_plane_size);
2132 align_buffer_page_end(dst_c, y_plane_size);
2133 align_buffer_page_end(dst_opt, y_plane_size);
2134 MemRandomize(orig_y, y_plane_size);
2135 memset(dst_c, 0, y_plane_size);
2136 memset(dst_opt, 1, y_plane_size);
2137
2138 // Disable all optimizations.
2139 MaskCpuFlags(disable_cpu_flags_);
2140 double c_time = get_time();
2141 for (j = 0; j < benchmark_iterations_; j++) {
2142 HalfFloatPlane((uint16*)orig_y, benchmark_width_ * 2,
2143 (uint16*)dst_c, benchmark_width_ * 2,
2144 1.0f / 65536.0f, benchmark_width_, benchmark_height_);
2145 }
2146 c_time = (get_time() - c_time) / benchmark_iterations_;
2147
2148 // Enable optimizations.
2149 MaskCpuFlags(benchmark_cpu_info_);
2150 double opt_time = get_time();
2151 for (j = 0; j < benchmark_iterations_; j++) {
2152 HalfFloatPlane((uint16*)orig_y, benchmark_width_ * 2,
2153 (uint16*)dst_opt, benchmark_width_ * 2,
2154 1.0f / 65536.0f, benchmark_width_, benchmark_height_);
2155 }
2156 opt_time = (get_time() - opt_time) / benchmark_iterations_;
2157
2158 for (i = 0; i < y_plane_size; ++i) {
2159 EXPECT_EQ(dst_c[i], dst_opt[i]);
2160 }
2161
2162 free_aligned_buffer_page_end(orig_y);
2163 free_aligned_buffer_page_end(dst_c);
2164 free_aligned_buffer_page_end(dst_opt);
2165 }
2166
2124 TEST_F(LibYUVPlanarTest, TestARGBLumaColorTable) { 2167 TEST_F(LibYUVPlanarTest, TestARGBLumaColorTable) {
2125 SIMD_ALIGNED(uint8 orig_pixels[1280][4]); 2168 SIMD_ALIGNED(uint8 orig_pixels[1280][4]);
2126 SIMD_ALIGNED(uint8 dst_pixels_opt[1280][4]); 2169 SIMD_ALIGNED(uint8 dst_pixels_opt[1280][4]);
2127 SIMD_ALIGNED(uint8 dst_pixels_c[1280][4]); 2170 SIMD_ALIGNED(uint8 dst_pixels_c[1280][4]);
2128 memset(orig_pixels, 0, sizeof(orig_pixels)); 2171 memset(orig_pixels, 0, sizeof(orig_pixels));
2129 2172
2130 align_buffer_page_end(lumacolortable, 32768); 2173 align_buffer_page_end(lumacolortable, 32768);
2131 int v = 0; 2174 int v = 0;
2132 for (int i = 0; i < 32768; ++i) { 2175 for (int i = 0; i < 32768; ++i) {
2133 lumacolortable[i] = v; 2176 lumacolortable[i] = v;
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
2487 } 2530 }
2488 2531
2489 free_aligned_buffer_page_end(src_pixels); 2532 free_aligned_buffer_page_end(src_pixels);
2490 free_aligned_buffer_page_end(tmp_pixels_u); 2533 free_aligned_buffer_page_end(tmp_pixels_u);
2491 free_aligned_buffer_page_end(tmp_pixels_v); 2534 free_aligned_buffer_page_end(tmp_pixels_v);
2492 free_aligned_buffer_page_end(dst_pixels_opt); 2535 free_aligned_buffer_page_end(dst_pixels_opt);
2493 free_aligned_buffer_page_end(dst_pixels_c); 2536 free_aligned_buffer_page_end(dst_pixels_c);
2494 } 2537 }
2495 2538
2496 } // namespace libyuv 2539 } // namespace libyuv
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698