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

Side by Side Diff: test/unittests/compiler/js-builtin-reducer-unittest.cc

Issue 2083453002: [builtins] Introduce proper Float64Tan operator. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 6 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 "src/compiler/js-builtin-reducer.h" 5 #include "src/compiler/js-builtin-reducer.h"
6 #include "src/compiler/js-graph.h" 6 #include "src/compiler/js-graph.h"
7 #include "src/compiler/node-properties.h" 7 #include "src/compiler/node-properties.h"
8 #include "src/compiler/simplified-operator.h" 8 #include "src/compiler/simplified-operator.h"
9 #include "src/compiler/typer.h" 9 #include "src/compiler/typer.h"
10 #include "src/isolate-inl.h" 10 #include "src/isolate-inl.h"
(...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 Node* call = graph()->NewNode(javascript()->CallFunction(3), function, 746 Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
747 UndefinedConstant(), p0, context, frame_state, 747 UndefinedConstant(), p0, context, frame_state,
748 effect, control); 748 effect, control);
749 Reduction r = Reduce(call); 749 Reduction r = Reduce(call);
750 750
751 ASSERT_TRUE(r.Changed()); 751 ASSERT_TRUE(r.Changed());
752 EXPECT_THAT(r.replacement(), IsNumberRound(IsPlainPrimitiveToNumber(p0))); 752 EXPECT_THAT(r.replacement(), IsNumberRound(IsPlainPrimitiveToNumber(p0)));
753 } 753 }
754 754
755 // ----------------------------------------------------------------------------- 755 // -----------------------------------------------------------------------------
756 // Math.sin
757
758 TEST_F(JSBuiltinReducerTest, MathSinWithNumber) {
759 Node* function = MathFunction("sin");
760
761 Node* effect = graph()->start();
762 Node* control = graph()->start();
763 Node* context = UndefinedConstant();
764 Node* frame_state = graph()->start();
765 TRACED_FOREACH(Type*, t0, kNumberTypes) {
766 Node* p0 = Parameter(t0, 0);
767 Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
768 UndefinedConstant(), p0, context, frame_state,
769 effect, control);
770 Reduction r = Reduce(call);
771
772 ASSERT_TRUE(r.Changed());
773 EXPECT_THAT(r.replacement(), IsNumberSin(p0));
774 }
775 }
776
777 TEST_F(JSBuiltinReducerTest, MathSinWithPlainPrimitive) {
778 Node* function = MathFunction("sin");
779
780 Node* effect = graph()->start();
781 Node* control = graph()->start();
782 Node* context = UndefinedConstant();
783 Node* frame_state = graph()->start();
784 Node* p0 = Parameter(Type::PlainPrimitive(), 0);
785 Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
786 UndefinedConstant(), p0, context, frame_state,
787 effect, control);
788 Reduction r = Reduce(call);
789
790 ASSERT_TRUE(r.Changed());
791 EXPECT_THAT(r.replacement(), IsNumberSin(IsPlainPrimitiveToNumber(p0)));
792 }
793
794 // -----------------------------------------------------------------------------
756 // Math.sqrt 795 // Math.sqrt
757 796
758 TEST_F(JSBuiltinReducerTest, MathSqrtWithNumber) { 797 TEST_F(JSBuiltinReducerTest, MathSqrtWithNumber) {
759 Node* function = MathFunction("sqrt"); 798 Node* function = MathFunction("sqrt");
760 799
761 Node* effect = graph()->start(); 800 Node* effect = graph()->start();
762 Node* control = graph()->start(); 801 Node* control = graph()->start();
763 Node* context = UndefinedConstant(); 802 Node* context = UndefinedConstant();
764 Node* frame_state = graph()->start(); 803 Node* frame_state = graph()->start();
765 TRACED_FOREACH(Type*, t0, kNumberTypes) { 804 TRACED_FOREACH(Type*, t0, kNumberTypes) {
(...skipping 19 matching lines...) Expand all
785 Node* call = graph()->NewNode(javascript()->CallFunction(3), function, 824 Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
786 UndefinedConstant(), p0, context, frame_state, 825 UndefinedConstant(), p0, context, frame_state,
787 effect, control); 826 effect, control);
788 Reduction r = Reduce(call); 827 Reduction r = Reduce(call);
789 828
790 ASSERT_TRUE(r.Changed()); 829 ASSERT_TRUE(r.Changed());
791 EXPECT_THAT(r.replacement(), IsNumberSqrt(IsPlainPrimitiveToNumber(p0))); 830 EXPECT_THAT(r.replacement(), IsNumberSqrt(IsPlainPrimitiveToNumber(p0)));
792 } 831 }
793 832
794 // ----------------------------------------------------------------------------- 833 // -----------------------------------------------------------------------------
834 // Math.tan
835
836 TEST_F(JSBuiltinReducerTest, MathTanWithNumber) {
837 Node* function = MathFunction("tan");
838
839 Node* effect = graph()->start();
840 Node* control = graph()->start();
841 Node* context = UndefinedConstant();
842 Node* frame_state = graph()->start();
843 TRACED_FOREACH(Type*, t0, kNumberTypes) {
844 Node* p0 = Parameter(t0, 0);
845 Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
846 UndefinedConstant(), p0, context, frame_state,
847 effect, control);
848 Reduction r = Reduce(call);
849
850 ASSERT_TRUE(r.Changed());
851 EXPECT_THAT(r.replacement(), IsNumberTan(p0));
852 }
853 }
854
855 TEST_F(JSBuiltinReducerTest, MathTanWithPlainPrimitive) {
856 Node* function = MathFunction("tan");
857
858 Node* effect = graph()->start();
859 Node* control = graph()->start();
860 Node* context = UndefinedConstant();
861 Node* frame_state = graph()->start();
862 Node* p0 = Parameter(Type::PlainPrimitive(), 0);
863 Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
864 UndefinedConstant(), p0, context, frame_state,
865 effect, control);
866 Reduction r = Reduce(call);
867
868 ASSERT_TRUE(r.Changed());
869 EXPECT_THAT(r.replacement(), IsNumberTan(IsPlainPrimitiveToNumber(p0)));
870 }
871
872 // -----------------------------------------------------------------------------
795 // Math.trunc 873 // Math.trunc
796 874
797 TEST_F(JSBuiltinReducerTest, MathTruncWithNumber) { 875 TEST_F(JSBuiltinReducerTest, MathTruncWithNumber) {
798 Node* function = MathFunction("trunc"); 876 Node* function = MathFunction("trunc");
799 877
800 Node* effect = graph()->start(); 878 Node* effect = graph()->start();
801 Node* control = graph()->start(); 879 Node* control = graph()->start();
802 Node* context = UndefinedConstant(); 880 Node* context = UndefinedConstant();
803 Node* frame_state = graph()->start(); 881 Node* frame_state = graph()->start();
804 TRACED_FOREACH(Type*, t0, kNumberTypes) { 882 TRACED_FOREACH(Type*, t0, kNumberTypes) {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
866 Reduction r = Reduce(call); 944 Reduction r = Reduce(call);
867 945
868 ASSERT_TRUE(r.Changed()); 946 ASSERT_TRUE(r.Changed());
869 EXPECT_THAT(r.replacement(), 947 EXPECT_THAT(r.replacement(),
870 IsStringFromCharCode(IsPlainPrimitiveToNumber(p0))); 948 IsStringFromCharCode(IsPlainPrimitiveToNumber(p0)));
871 } 949 }
872 950
873 } // namespace compiler 951 } // namespace compiler
874 } // namespace internal 952 } // namespace internal
875 } // namespace v8 953 } // namespace v8
OLDNEW
« no previous file with comments | « test/unittests/base/ieee754-unittest.cc ('k') | test/unittests/compiler/js-intrinsic-lowering-unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698