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

Side by Side Diff: test/cctest/wasm/test-run-wasm.cc

Issue 1593313010: Revert of [turbofan] Implement rounding of floats on x64 and ia32 without sse4.1. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 11 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 | « test/cctest/compiler/value-helper.h ('k') | 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 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdint.h> 5 #include <stdint.h>
6 #include <stdlib.h> 6 #include <stdlib.h>
7 #include <string.h> 7 #include <string.h>
8 8
9 #include "src/wasm/wasm-macro-gen.h" 9 #include "src/wasm/wasm-macro-gen.h"
10 10
(...skipping 2891 matching lines...) Expand 10 before | Expand all | Expand 10 after
2902 CHECK_EQ(1, r.Call(1, 0, 2)); 2902 CHECK_EQ(1, r.Call(1, 0, 2));
2903 CHECK_EQ(1, r.Call(1, 0, 9)); 2903 CHECK_EQ(1, r.Call(1, 0, 9));
2904 2904
2905 CHECK_TRAP(r.Call(0, 2, 1)); 2905 CHECK_TRAP(r.Call(0, 2, 1));
2906 CHECK_TRAP(r.Call(1, 2, 0)); 2906 CHECK_TRAP(r.Call(1, 2, 0));
2907 CHECK_TRAP(r.Call(2, 0, 1)); 2907 CHECK_TRAP(r.Call(2, 0, 1));
2908 CHECK_TRAP(r.Call(2, 1, 0)); 2908 CHECK_TRAP(r.Call(2, 1, 0));
2909 } 2909 }
2910 2910
2911 2911
2912 // TODO(titzer): Fix for nosee4 and re-enable.
2913 #if 0
2914
2912 TEST(Run_Wasm_F32Floor) { 2915 TEST(Run_Wasm_F32Floor) {
2913 WasmRunner<float> r(MachineType::Float32()); 2916 WasmRunner<float> r(MachineType::Float32());
2914 BUILD(r, WASM_F32_FLOOR(WASM_GET_LOCAL(0))); 2917 BUILD(r, WASM_F32_FLOOR(WASM_GET_LOCAL(0)));
2915 2918
2916 FOR_FLOAT32_INPUTS(i) { CheckFloatEq(floor(*i), r.Call(*i)); } 2919 FOR_FLOAT32_INPUTS(i) { CheckFloatEq(floor(*i), r.Call(*i)); }
2917 } 2920 }
2918 2921
2919 2922
2920 TEST(Run_Wasm_F32Ceil) { 2923 TEST(Run_Wasm_F32Ceil) {
2921 WasmRunner<float> r(MachineType::Float32()); 2924 WasmRunner<float> r(MachineType::Float32());
(...skipping 28 matching lines...) Expand all
2950 2953
2951 2954
2952 TEST(Run_Wasm_F64Ceil) { 2955 TEST(Run_Wasm_F64Ceil) {
2953 WasmRunner<double> r(MachineType::Float64()); 2956 WasmRunner<double> r(MachineType::Float64());
2954 BUILD(r, WASM_F64_CEIL(WASM_GET_LOCAL(0))); 2957 BUILD(r, WASM_F64_CEIL(WASM_GET_LOCAL(0)));
2955 2958
2956 FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(ceil(*i), r.Call(*i)); } 2959 FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(ceil(*i), r.Call(*i)); }
2957 } 2960 }
2958 2961
2959 2962
2960 TEST(Run_WasmCallF64StackParameterTrunc) {
2961 // Build the target function.
2962 LocalType param_types[20];
2963 for (int i = 0; i < 20; i++) param_types[i] = kAstF64;
2964 FunctionSig sig(1, 19, param_types);
2965 TestingModule module;
2966 WasmFunctionCompiler t(&sig);
2967 BUILD(t, WASM_F64_TRUNC(WASM_GET_LOCAL(17)));
2968 uint32_t index = t.CompileAndAdd(&module);
2969
2970 // Build the calling function.
2971 WasmRunner<double> r(MachineType::Float64());
2972 r.env()->module = &module;
2973 BUILD(r, WASM_CALL_FUNCTION(index, WASM_F64(1.0), WASM_F64(2.0),
2974 WASM_F64(4.0), WASM_F64(8.0), WASM_F64(16.0),
2975 WASM_F64(32.0), WASM_F64(64.0), WASM_F64(128.0),
2976 WASM_F64(256.0), WASM_F64(1.5), WASM_F64(2.5),
2977 WASM_F64(4.5), WASM_F64(8.5), WASM_F64(16.5),
2978 WASM_F64(32.5), WASM_F64(64.5), WASM_F64(128.5),
2979 WASM_GET_LOCAL(0), WASM_F64(512.5)));
2980
2981
2982 FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(trunc(*i), r.Call(*i)); }
2983 }
2984
2985
2986 TEST(Run_Wasm_F64Trunc) { 2963 TEST(Run_Wasm_F64Trunc) {
2987 WasmRunner<double> r(MachineType::Float64()); 2964 WasmRunner<double> r(MachineType::Float64());
2988 BUILD(r, WASM_F64_TRUNC(WASM_GET_LOCAL(0))); 2965 BUILD(r, WASM_F64_TRUNC(WASM_GET_LOCAL(0)));
2989 2966
2990 FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(trunc(*i), r.Call(*i)); } 2967 FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(trunc(*i), r.Call(*i)); }
2991 } 2968 }
2992 2969
2993 2970
2994 TEST(Run_Wasm_F64NearestInt) { 2971 TEST(Run_Wasm_F64NearestInt) {
2995 WasmRunner<double> r(MachineType::Float64()); 2972 WasmRunner<double> r(MachineType::Float64());
2996 BUILD(r, WASM_F64_NEARESTINT(WASM_GET_LOCAL(0))); 2973 BUILD(r, WASM_F64_NEARESTINT(WASM_GET_LOCAL(0)));
2997 2974
2998 FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(nearbyint(*i), r.Call(*i)); } 2975 FOR_FLOAT64_INPUTS(i) { CheckDoubleEq(nearbyint(*i), r.Call(*i)); }
2999 } 2976 }
3000 2977
2978 #endif
2979
3001 2980
3002 TEST(Run_Wasm_F32Min) { 2981 TEST(Run_Wasm_F32Min) {
3003 WasmRunner<float> r(MachineType::Float32(), MachineType::Float32()); 2982 WasmRunner<float> r(MachineType::Float32(), MachineType::Float32());
3004 BUILD(r, WASM_F32_MIN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); 2983 BUILD(r, WASM_F32_MIN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
3005 2984
3006 FOR_FLOAT32_INPUTS(i) { 2985 FOR_FLOAT32_INPUTS(i) {
3007 FOR_FLOAT32_INPUTS(j) { 2986 FOR_FLOAT32_INPUTS(j) {
3008 float expected; 2987 float expected;
3009 if (*i < *j) { 2988 if (*i < *j) {
3010 expected = *i; 2989 expected = *i;
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
3266 TEST(Run_Wasm_F32CopySign) { 3245 TEST(Run_Wasm_F32CopySign) {
3267 WasmRunner<float> r(MachineType::Float32(), MachineType::Float32()); 3246 WasmRunner<float> r(MachineType::Float32(), MachineType::Float32());
3268 BUILD(r, WASM_F32_COPYSIGN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))); 3247 BUILD(r, WASM_F32_COPYSIGN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
3269 3248
3270 FOR_FLOAT32_INPUTS(i) { 3249 FOR_FLOAT32_INPUTS(i) {
3271 FOR_FLOAT32_INPUTS(j) { CheckFloatEq(copysign(*i, *j), r.Call(*i, *j)); } 3250 FOR_FLOAT32_INPUTS(j) { CheckFloatEq(copysign(*i, *j), r.Call(*i, *j)); }
3272 } 3251 }
3273 } 3252 }
3274 3253
3275 #endif 3254 #endif
OLDNEW
« no previous file with comments | « test/cctest/compiler/value-helper.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698