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

Side by Side Diff: test/unittests/compiler/arm64/instruction-selector-arm64-unittest.cc

Issue 1066393002: [turbofan] Add new Float32Abs and Float64Abs operators. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix comment. Created 5 years, 8 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. 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 "test/unittests/compiler/instruction-selector-unittest.h" 5 #include "test/unittests/compiler/instruction-selector-unittest.h"
6 6
7 namespace v8 { 7 namespace v8 {
8 namespace internal { 8 namespace internal {
9 namespace compiler { 9 namespace compiler {
10 10
(...skipping 2394 matching lines...) Expand 10 before | Expand all | Expand 10 after
2405 Stream s = m.Build(); 2405 Stream s = m.Build();
2406 ASSERT_EQ(1U, s.size()); 2406 ASSERT_EQ(1U, s.size());
2407 EXPECT_EQ(kArm64Clz32, s[0]->arch_opcode()); 2407 EXPECT_EQ(kArm64Clz32, s[0]->arch_opcode());
2408 ASSERT_EQ(1U, s[0]->InputCount()); 2408 ASSERT_EQ(1U, s[0]->InputCount());
2409 EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0))); 2409 EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
2410 ASSERT_EQ(1U, s[0]->OutputCount()); 2410 ASSERT_EQ(1U, s[0]->OutputCount());
2411 EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output())); 2411 EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
2412 } 2412 }
2413 2413
2414 2414
2415 TEST_F(InstructionSelectorTest, Float32Abs) {
2416 StreamBuilder m(this, kMachFloat32, kMachFloat32);
2417 Node* const p0 = m.Parameter(0);
2418 Node* const n = m.Float32Abs(p0);
2419 m.Return(n);
2420 Stream s = m.Build();
2421 ASSERT_EQ(1U, s.size());
2422 EXPECT_EQ(kArm64Float32Abs, s[0]->arch_opcode());
2423 ASSERT_EQ(1U, s[0]->InputCount());
2424 EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
2425 ASSERT_EQ(1U, s[0]->OutputCount());
2426 EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
2427 }
2428
2429
2430 TEST_F(InstructionSelectorTest, Float64Abs) {
2431 StreamBuilder m(this, kMachFloat64, kMachFloat64);
2432 Node* const p0 = m.Parameter(0);
2433 Node* const n = m.Float64Abs(p0);
2434 m.Return(n);
2435 Stream s = m.Build();
2436 ASSERT_EQ(1U, s.size());
2437 EXPECT_EQ(kArm64Float64Abs, s[0]->arch_opcode());
2438 ASSERT_EQ(1U, s[0]->InputCount());
2439 EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
2440 ASSERT_EQ(1U, s[0]->OutputCount());
2441 EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
2442 }
2443
2444
2415 TEST_F(InstructionSelectorTest, Float64SubWithMinusZero) { 2445 TEST_F(InstructionSelectorTest, Float64SubWithMinusZero) {
2416 StreamBuilder m(this, kMachFloat64, kMachFloat64); 2446 StreamBuilder m(this, kMachFloat64, kMachFloat64);
2417 Node* const p0 = m.Parameter(0); 2447 Node* const p0 = m.Parameter(0);
2418 Node* const n = m.Float64Sub(m.Float64Constant(-0.0), p0); 2448 Node* const n = m.Float64Sub(m.Float64Constant(-0.0), p0);
2419 m.Return(n); 2449 m.Return(n);
2420 Stream s = m.Build(); 2450 Stream s = m.Build();
2421 ASSERT_EQ(1U, s.size()); 2451 ASSERT_EQ(1U, s.size());
2422 EXPECT_EQ(kArm64Float64Neg, s[0]->arch_opcode()); 2452 EXPECT_EQ(kArm64Float64Neg, s[0]->arch_opcode());
2423 ASSERT_EQ(1U, s[0]->InputCount()); 2453 ASSERT_EQ(1U, s[0]->InputCount());
2424 EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0))); 2454 EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
2425 ASSERT_EQ(1U, s[0]->OutputCount()); 2455 ASSERT_EQ(1U, s[0]->OutputCount());
2426 EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output())); 2456 EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
2427 } 2457 }
2428 2458
2429 } // namespace compiler 2459 } // namespace compiler
2430 } // namespace internal 2460 } // namespace internal
2431 } // namespace v8 2461 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698