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

Side by Side Diff: test/cctest/compiler/test-run-machops.cc

Issue 1397883003: Added a test for CLZ (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Merge conflict Created 5 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 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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 <cmath> 5 #include <cmath>
6 #include <functional> 6 #include <functional>
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/base/utils/random-number-generator.h" 10 #include "src/base/utils/random-number-generator.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 TestWord32Ctz(0x27a9db40, 6); 68 TestWord32Ctz(0x27a9db40, 6);
69 TestWord32Ctz(0xde3bcb20, 5); 69 TestWord32Ctz(0xde3bcb20, 5);
70 TestWord32Ctz(0xd7e8a610, 4); 70 TestWord32Ctz(0xd7e8a610, 4);
71 TestWord32Ctz(0x9afdbc88, 3); 71 TestWord32Ctz(0x9afdbc88, 3);
72 TestWord32Ctz(0x9afdbc84, 2); 72 TestWord32Ctz(0x9afdbc84, 2);
73 TestWord32Ctz(0x9afdbc82, 1); 73 TestWord32Ctz(0x9afdbc82, 1);
74 TestWord32Ctz(0x9afdbc81, 0); 74 TestWord32Ctz(0x9afdbc81, 0);
75 } 75 }
76 76
77 77
78 void TestWord32Clz(int32_t value, int32_t expected) {
79 RawMachineAssemblerTester<int32_t> m;
80 Node* clz = m.Word32Clz(m.Int32Constant(value));
81 m.Return(clz);
82 CHECK_EQ(expected, m.Call());
83 }
84
85
86 TEST(RunInt32Clz) {
87 TestWord32Clz(0x80001000, 0);
88 TestWord32Clz(0x40000500, 1);
89 TestWord32Clz(0x20000300, 2);
90 TestWord32Clz(0x10000003, 3);
91 TestWord32Clz(0x08050000, 4);
92 TestWord32Clz(0x04006000, 5);
93 TestWord32Clz(0x02000000, 6);
94 TestWord32Clz(0x010000a0, 7);
95 TestWord32Clz(0x00800c00, 8);
96 TestWord32Clz(0x00400000, 9);
97 TestWord32Clz(0x0020000d, 10);
98 TestWord32Clz(0x00100f00, 11);
99 TestWord32Clz(0x00080000, 12);
100 TestWord32Clz(0x00041000, 13);
101 TestWord32Clz(0x00020020, 14);
102 TestWord32Clz(0x00010300, 15);
103 TestWord32Clz(0x00008040, 16);
104 TestWord32Clz(0x00004005, 17);
105 TestWord32Clz(0x00002050, 18);
106 TestWord32Clz(0x00001700, 19);
107 TestWord32Clz(0x00000870, 20);
108 TestWord32Clz(0x00000405, 21);
109 TestWord32Clz(0x00000203, 22);
110 TestWord32Clz(0x00000101, 23);
111 TestWord32Clz(0x00000089, 24);
112 TestWord32Clz(0x00000041, 25);
113 TestWord32Clz(0x00000022, 26);
114 TestWord32Clz(0x00000013, 27);
115 TestWord32Clz(0x00000008, 28);
116 TestWord32Clz(0x00000004, 29);
117 TestWord32Clz(0x00000002, 30);
118 TestWord32Clz(0x00000001, 31);
119 TestWord32Clz(0x00000000, 32);
120 }
121
122
78 static Node* Int32Input(RawMachineAssemblerTester<int32_t>* m, int index) { 123 static Node* Int32Input(RawMachineAssemblerTester<int32_t>* m, int index) {
79 switch (index) { 124 switch (index) {
80 case 0: 125 case 0:
81 return m->Parameter(0); 126 return m->Parameter(0);
82 case 1: 127 case 1:
83 return m->Parameter(1); 128 return m->Parameter(1);
84 case 2: 129 case 2:
85 return m->Int32Constant(0); 130 return m->Int32Constant(0);
86 case 3: 131 case 3:
87 return m->Int32Constant(1); 132 return m->Int32Constant(1);
(...skipping 5389 matching lines...) Expand 10 before | Expand all | Expand 10 after
5477 c->CalleeSavedRegisters(), // callee saved 5522 c->CalleeSavedRegisters(), // callee saved
5478 c->CalleeSavedFPRegisters(), // callee saved FP 5523 c->CalleeSavedFPRegisters(), // callee saved FP
5479 CallDescriptor::kNoFlags, // flags 5524 CallDescriptor::kNoFlags, // flags
5480 "c-call-as-code"); 5525 "c-call-as-code");
5481 Node* call = r.AddNode(r.common()->Call(desc), phi); 5526 Node* call = r.AddNode(r.common()->Call(desc), phi);
5482 r.Return(call); 5527 r.Return(call);
5483 5528
5484 CHECK_EQ(33, r.Call(1)); 5529 CHECK_EQ(33, r.Call(1));
5485 CHECK_EQ(44, r.Call(0)); 5530 CHECK_EQ(44, r.Call(0));
5486 } 5531 }
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