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

Side by Side Diff: test/cctest/compiler/test-run-calls-to-external-references.cc

Issue 1773513002: x87: fix the use of CheckFloatEq and CheckDoubleEq in test. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Use a do { .. } while(false) to be a good macro citizen. Created 4 years, 9 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
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. Use of this 1 // Copyright 2014 the V8 project authors. All rights reserved. Use of this
2 // source code is governed by a BSD-style license that can be found in the 2 // source code is governed by a BSD-style license that can be found in the
3 // LICENSE file. 3 // LICENSE file.
4 4
5 #include "test/cctest/cctest.h" 5 #include "test/cctest/cctest.h"
6 #include "test/cctest/compiler/codegen-tester.h" 6 #include "test/cctest/compiler/codegen-tester.h"
7 #include "test/cctest/compiler/value-helper.h" 7 #include "test/cctest/compiler/value-helper.h"
8 8
9 namespace v8 { 9 namespace v8 {
10 namespace internal { 10 namespace internal {
11 namespace compiler { 11 namespace compiler {
12 12
13 template <typename T> 13 template <typename T>
14 void TestExternalReferenceRoundingFunction( 14 void TestExternalReferenceRoundingFunction(
15 BufferedRawMachineAssemblerTester<int32_t>* m, ExternalReference ref, 15 BufferedRawMachineAssemblerTester<int32_t>* m, ExternalReference ref,
16 T (*comparison)(T)) { 16 T (*comparison)(T)) {
17 T parameter; 17 T parameter;
18 18
19 Node* function = m->ExternalConstant(ref); 19 Node* function = m->ExternalConstant(ref);
20 m->CallCFunction1(MachineType::Pointer(), MachineType::Pointer(), function, 20 m->CallCFunction1(MachineType::Pointer(), MachineType::Pointer(), function,
21 m->PointerConstant(&parameter)); 21 m->PointerConstant(&parameter));
22 m->Return(m->Int32Constant(4356)); 22 m->Return(m->Int32Constant(4356));
23 FOR_FLOAT64_INPUTS(i) { 23 FOR_FLOAT64_INPUTS(i) {
24 parameter = *i; 24 parameter = *i;
25 m->Call(); 25 m->Call();
26 CheckDoubleEq(comparison(*i), parameter); 26 CHECK_DOUBLE_EQ(comparison(*i), parameter);
27 } 27 }
28 } 28 }
29 29
30 TEST(RunCallF32Trunc) { 30 TEST(RunCallF32Trunc) {
31 BufferedRawMachineAssemblerTester<int32_t> m; 31 BufferedRawMachineAssemblerTester<int32_t> m;
32 ExternalReference ref = ExternalReference::wasm_f32_trunc(m.isolate()); 32 ExternalReference ref = ExternalReference::wasm_f32_trunc(m.isolate());
33 TestExternalReferenceRoundingFunction<float>(&m, ref, truncf); 33 TestExternalReferenceRoundingFunction<float>(&m, ref, truncf);
34 } 34 }
35 35
36 TEST(RunCallF32Floor) { 36 TEST(RunCallF32Floor) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 float output; 83 float output;
84 84
85 Node* function = m.ExternalConstant(ref); 85 Node* function = m.ExternalConstant(ref);
86 m.CallCFunction2(MachineType::Pointer(), MachineType::Pointer(), 86 m.CallCFunction2(MachineType::Pointer(), MachineType::Pointer(),
87 MachineType::Pointer(), function, m.PointerConstant(&input), 87 MachineType::Pointer(), function, m.PointerConstant(&input),
88 m.PointerConstant(&output)); 88 m.PointerConstant(&output));
89 m.Return(m.Int32Constant(4356)); 89 m.Return(m.Int32Constant(4356));
90 FOR_INT64_INPUTS(i) { 90 FOR_INT64_INPUTS(i) {
91 input = *i; 91 input = *i;
92 m.Call(); 92 m.Call();
93 CheckFloatEq(static_cast<float>(*i), output); 93 CHECK_FLOAT_EQ(static_cast<float>(*i), output);
94 } 94 }
95 } 95 }
96 96
97 TEST(RunCallUint64ToFloat32) { 97 TEST(RunCallUint64ToFloat32) {
98 struct { 98 struct {
99 uint64_t input; 99 uint64_t input;
100 uint32_t expected; 100 uint32_t expected;
101 } values[] = {{0x0, 0x0}, 101 } values[] = {{0x0, 0x0},
102 {0x1, 0x3f800000}, 102 {0x1, 0x3f800000},
103 {0xffffffff, 0x4f800000}, 103 {0xffffffff, 0x4f800000},
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 double output; 211 double output;
212 212
213 Node* function = m.ExternalConstant(ref); 213 Node* function = m.ExternalConstant(ref);
214 m.CallCFunction2(MachineType::Pointer(), MachineType::Pointer(), 214 m.CallCFunction2(MachineType::Pointer(), MachineType::Pointer(),
215 MachineType::Pointer(), function, m.PointerConstant(&input), 215 MachineType::Pointer(), function, m.PointerConstant(&input),
216 m.PointerConstant(&output)); 216 m.PointerConstant(&output));
217 m.Return(m.Int32Constant(4356)); 217 m.Return(m.Int32Constant(4356));
218 FOR_INT64_INPUTS(i) { 218 FOR_INT64_INPUTS(i) {
219 input = *i; 219 input = *i;
220 m.Call(); 220 m.Call();
221 CheckDoubleEq(static_cast<double>(*i), output); 221 CHECK_DOUBLE_EQ(static_cast<double>(*i), output);
222 } 222 }
223 } 223 }
224 224
225 TEST(RunCallUint64ToFloat64) { 225 TEST(RunCallUint64ToFloat64) {
226 struct { 226 struct {
227 uint64_t input; 227 uint64_t input;
228 uint64_t expected; 228 uint64_t expected;
229 } values[] = {{0x0, 0x0}, 229 } values[] = {{0x0, 0x0},
230 {0x1, 0x3ff0000000000000}, 230 {0x1, 0x3ff0000000000000},
231 {0xffffffff, 0x41efffffffe00000}, 231 {0xffffffff, 0x41efffffffe00000},
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 for (size_t i = 0; i < arraysize(values); i++) { 327 for (size_t i = 0; i < arraysize(values); i++) {
328 input = values[i].input; 328 input = values[i].input;
329 m.Call(); 329 m.Call();
330 CHECK_EQ(values[i].expected, bit_cast<uint64_t>(output)); 330 CHECK_EQ(values[i].expected, bit_cast<uint64_t>(output));
331 } 331 }
332 } 332 }
333 333
334 } // namespace compiler 334 } // namespace compiler
335 } // namespace internal 335 } // namespace internal
336 } // namespace v8 336 } // namespace v8
OLDNEW
« no previous file with comments | « test/cctest/compiler/test-representation-change.cc ('k') | test/cctest/compiler/test-run-machops.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698