Lines Matching full:b
360 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
361 Environment env(0, &b); in HWTEST_F_L0()
362 b.SetEnvironment(&env); in HWTEST_F_L0()
368 auto x = b.Arguments(1); in HWTEST_F_L0()
369 auto const_0 = b.Int64(0); in HWTEST_F_L0()
370 auto result = b.Int64Mul(x, const_0); in HWTEST_F_L0()
375 auto x = b.Arguments(1); in HWTEST_F_L0()
376 auto const_1 = b.Int64(1); in HWTEST_F_L0()
377 auto result = b.Int64Mul(x, const_1); in HWTEST_F_L0()
383 auto const_1 = b.Int64(1); in HWTEST_F_L0()
384 auto const_2 = b.Int64(2); in HWTEST_F_L0()
385 auto result = instcombie.VisitGate(b.Int64Mul(const_1, const_2)); in HWTEST_F_L0()
390 auto const_i64_max = b.Int64(9223372036854775807); // Max int64_t value in HWTEST_F_L0()
391 auto const_i64_2 = b.Int64(2); in HWTEST_F_L0()
392 auto result = instcombie.VisitGate(b.Int64Mul(const_i64_max, const_i64_2)); in HWTEST_F_L0()
401 auto x = b.Arguments(2); in HWTEST_F_L0()
402 auto result = instcombie.VisitGate(b.Int64Mul(x, b.Int64(-1))); in HWTEST_F_L0()
412 auto x = b.Arguments(3); in HWTEST_F_L0()
413 auto const_4 = b.Int64(4); in HWTEST_F_L0()
414 auto result = instcombie.VisitGate(b.Int64Mul(x, const_4)); in HWTEST_F_L0()
421 // (x * Int64Constant(a)) * Int64Constant(b)) => x * Int64Constant(a * b) in HWTEST_F_L0()
423 auto x = b.Arguments(4); in HWTEST_F_L0()
424 auto const_4 = b.Int64(4); in HWTEST_F_L0()
425 auto const_5 = b.Int64(5); in HWTEST_F_L0()
426 auto result = instcombie.VisitGate(b.Int64Mul(b.Int64Mul(x, const_4), const_5)); in HWTEST_F_L0()
432 // Test for (x * Int64Constant(a)) * Int64Constant(b)) => x * Int64Constant(a * b) with overflow in HWTEST_F_L0()
434 auto x = b.Arguments(4); in HWTEST_F_L0()
435 auto const_almost_max = b.Int64(INT64_MAX - 1); // INT64_MAX - 1 in HWTEST_F_L0()
436 auto const_3 = b.Int64(3); in HWTEST_F_L0()
437 auto result = instcombie.VisitGate(b.Int64Mul(b.Int64Mul(x, const_almost_max), const_3)); in HWTEST_F_L0()
439 // Due to overflow, a * b should wrap around. in HWTEST_F_L0()
456 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
457 Environment env(0, &b); in HWTEST_F_L0()
458 b.SetEnvironment(&env); in HWTEST_F_L0()
464 auto x = b.Arguments(1); in HWTEST_F_L0()
465 auto const_0 = b.Int32(0); in HWTEST_F_L0()
466 auto result = b.Int32Mul(x, const_0); in HWTEST_F_L0()
471 auto x = b.Arguments(1); in HWTEST_F_L0()
472 auto const_1 = b.Int32(1); in HWTEST_F_L0()
473 auto result = b.Int32Mul(x, const_1); in HWTEST_F_L0()
480 auto const_1 = b.Int32(1); in HWTEST_F_L0()
481 auto const_2 = b.Int32(2); in HWTEST_F_L0()
482 auto result = instcombie.VisitGate(b.Int32Mul(const_1, const_2)); in HWTEST_F_L0()
489 auto const_i32_max = b.Int32(2147483647); // Max int32_t value in HWTEST_F_L0()
490 auto const_i32_2 = b.Int32(2); in HWTEST_F_L0()
491 auto result = instcombie.VisitGate(b.Int32Mul(const_i32_max, const_i32_2)); in HWTEST_F_L0()
502 auto x = b.Arguments(2); in HWTEST_F_L0()
503 auto result = instcombie.VisitGate(b.Int32Mul(x, b.Int32(-1))); in HWTEST_F_L0()
514 auto x = b.Arguments(3); in HWTEST_F_L0()
515 auto const_4 = b.Int32(4); in HWTEST_F_L0()
516 auto result = instcombie.VisitGate(b.Int32Mul(x, const_4)); in HWTEST_F_L0()
524 // (x * Int32Constant(a)) * Int32Constant(b)) => x * Int32Constant(a * b) in HWTEST_F_L0()
526 auto x = b.Arguments(4); in HWTEST_F_L0()
527 auto const_4 = b.Int32(4); in HWTEST_F_L0()
528 auto const_5 = b.Int32(5); in HWTEST_F_L0()
529 auto result = instcombie.VisitGate(b.Int32Mul(b.Int32Mul(x, const_4), const_5)); in HWTEST_F_L0()
536 // Test for (x * Int32Constant(a)) * Int32Constant(b)) => x * Int32Constant(a * b) with overflow in HWTEST_F_L0()
538 auto x = b.Arguments(4); in HWTEST_F_L0()
539 auto const_almost_max = b.Int32(INT32_MAX - 1); // INT32_MAX - 1 in HWTEST_F_L0()
540 auto const_3 = b.Int32(3); in HWTEST_F_L0()
541 auto result = instcombie.VisitGate(b.Int32Mul(b.Int32Mul(x, const_almost_max), const_3)); in HWTEST_F_L0()
543 // Due to overflow, a * b should wrap around. in HWTEST_F_L0()
561 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
562 Environment env(0, &b); in HWTEST_F_L0()
563 b.SetEnvironment(&env); in HWTEST_F_L0()
569 auto x = b.Arguments(1); in HWTEST_F_L0()
570 auto const_0 = b.Int64(0); in HWTEST_F_L0()
571 auto result = b.Int64Div(const_0, x); in HWTEST_F_L0()
578 auto x = b.Arguments(1); in HWTEST_F_L0()
579 auto const_0 = b.Int64(0); in HWTEST_F_L0()
580 auto result = b.Int64Div(x, const_0); in HWTEST_F_L0()
586 auto x = b.Arguments(1); in HWTEST_F_L0()
587 auto const_1 = b.Int64(1); in HWTEST_F_L0()
588 auto result = b.Int64Div(x, const_1); in HWTEST_F_L0()
594 auto const_4 = b.Int64(4); in HWTEST_F_L0()
595 auto const_2 = b.Int64(2); in HWTEST_F_L0()
596 auto result = instcombie.VisitGate(b.Int64Div(const_4, const_2)); in HWTEST_F_L0()
603 auto x = b.Arguments(2); in HWTEST_F_L0()
604 auto result = instcombie.VisitGate(b.Int64Div(x, b.Int64(-1))); in HWTEST_F_L0()
616 auto x = b.Arguments(2); in HWTEST_F_L0()
617 auto result = instcombie.VisitGate(b.Int64Div(x, b.Int64(-5))); in HWTEST_F_L0()
632 auto x = b.Arguments(2); in HWTEST_F_L0()
633 … auto result = instcombie.VisitGate(b.Int64Div(x, b.Int64(std::numeric_limits<int64_t>::min()))); in HWTEST_F_L0()
645 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
646 Environment env(0, &b); in HWTEST_F_L0()
647 b.SetEnvironment(&env); in HWTEST_F_L0()
653 auto x = b.Arguments(1); in HWTEST_F_L0()
654 auto const_0 = b.Int32(0); in HWTEST_F_L0()
655 auto result = b.Int32Div(const_0, x); in HWTEST_F_L0()
662 auto x = b.Arguments(1); in HWTEST_F_L0()
663 auto const_0 = b.Int32(0); in HWTEST_F_L0()
664 auto result = b.Int32Div(x, const_0); in HWTEST_F_L0()
670 auto x = b.Arguments(1); in HWTEST_F_L0()
671 auto const_1 = b.Int32(1); in HWTEST_F_L0()
672 auto result = b.Int32Div(x, const_1); in HWTEST_F_L0()
678 auto const_4 = b.Int32(4); in HWTEST_F_L0()
679 auto const_2 = b.Int32(2); in HWTEST_F_L0()
680 auto result = instcombie.VisitGate(b.Int32Div(const_4, const_2)); in HWTEST_F_L0()
688 auto x = b.Arguments(2); in HWTEST_F_L0()
689 auto result = instcombie.VisitGate(b.Int32Div(x, b.Int32(-1))); in HWTEST_F_L0()
700 auto x = b.Arguments(2); in HWTEST_F_L0()
701 auto result = instcombie.VisitGate(b.Int32Div(x, b.Int32(-5))); in HWTEST_F_L0()
722 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
723 Environment env(0, &b); in HWTEST_F_L0()
724 b.SetEnvironment(&env); in HWTEST_F_L0()
730 auto x = b.Arguments(1); in HWTEST_F_L0()
731 auto nan = b.NanValue(); in HWTEST_F_L0()
732 auto zero = b.Double(0); in HWTEST_F_L0()
737 EXPECT_EQ(instcombie.VisitGate(b.DoubleAdd(x, nan)), nan); in HWTEST_F_L0()
738 EXPECT_EQ(instcombie.VisitGate(b.DoubleSub(x, nan)), nan); in HWTEST_F_L0()
739 EXPECT_EQ(instcombie.VisitGate(b.DoubleMul(x, nan)), nan); in HWTEST_F_L0()
740 EXPECT_EQ(instcombie.VisitGate(b.DoubleDiv(x, nan)), nan); in HWTEST_F_L0()
742 EXPECT_EQ(instcombie.VisitGate(b.DoubleMod(x, zero)), nan); in HWTEST_F_L0()
746 auto x = b.Arguments(1); in HWTEST_F_L0()
747 auto nan = b.NanValue(); in HWTEST_F_L0()
748 EXPECT_EQ(instcombie.VisitGate(b.DoubleAdd(nan, x)), nan); in HWTEST_F_L0()
749 EXPECT_EQ(instcombie.VisitGate(b.DoubleSub(nan, x)), nan); in HWTEST_F_L0()
750 EXPECT_EQ(instcombie.VisitGate(b.DoubleDiv(nan, x)), nan); in HWTEST_F_L0()
751 EXPECT_EQ(instcombie.VisitGate(b.DoubleMod(nan, x)), nan); in HWTEST_F_L0()
756 auto value1 = b.Double(10.1); in HWTEST_F_L0()
757 auto value2 = b.Double(5.2); in HWTEST_F_L0()
758 auto result = instcombie.VisitGate(b.DoubleAdd(value1, value2)); in HWTEST_F_L0()
762 result = instcombie.VisitGate(b.DoubleAdd(value1, value2)); in HWTEST_F_L0()
766 result = instcombie.VisitGate(b.DoubleSub(value1, value2)); in HWTEST_F_L0()
770 result = instcombie.VisitGate(b.DoubleDiv(value1, value2)); in HWTEST_F_L0()
777 auto x = b.Arguments(1); in HWTEST_F_L0()
778 auto neg_one = b.Double(-1); in HWTEST_F_L0()
779 auto result = instcombie.VisitGate(b.DoubleMul(x, neg_one)); in HWTEST_F_L0()
790 auto x = b.Arguments(1); in HWTEST_F_L0()
791 auto two = b.Double(2.0); in HWTEST_F_L0()
792 auto result = instcombie.VisitGate(b.DoubleMul(x, two)); in HWTEST_F_L0()
807 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
808 Environment env(0, &b); in HWTEST_F_L0()
809 b.SetEnvironment(&env); in HWTEST_F_L0()
813 auto x = b.Arguments(1); in HWTEST_F_L0()
814 auto zero = b.Int32(0); in HWTEST_F_L0()
815 auto one = b.Int32(1); in HWTEST_F_L0()
816 auto neg_one = b.Int32(-1); in HWTEST_F_L0()
817 auto four = b.Int32(4); in HWTEST_F_L0()
818 auto two = b.Int32(2); in HWTEST_F_L0()
825 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(x, zero)), zero); in HWTEST_F_L0()
826 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(zero, x)), zero); in HWTEST_F_L0()
827 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(x, one)), zero); in HWTEST_F_L0()
828 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(x, neg_one)), zero); in HWTEST_F_L0()
829 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(x, x)), zero); in HWTEST_F_L0()
831 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(two, four)), two); in HWTEST_F_L0()
842 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
843 Environment env(0, &b); in HWTEST_F_L0()
844 b.SetEnvironment(&env); in HWTEST_F_L0()
851 auto add_overflow = b.AddWithOverflow(b.Int32(2147483647), b.Int32(1)); in HWTEST_F_L0()
852 … auto add_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, add_overflow, b.Int32(0)); in HWTEST_F_L0()
853 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, add_overflow, b.Int32(1)); in HWTEST_F_L0()
855 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(true)); in HWTEST_F_L0()
860 auto add_overflow = b.AddWithOverflow(b.Int32(2147483646), b.Int32(1)); in HWTEST_F_L0()
861 … auto add_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, add_overflow, b.Int32(0)); in HWTEST_F_L0()
862 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, add_overflow, b.Int32(1)); in HWTEST_F_L0()
864 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
871 auto x = b.Arguments(1); in HWTEST_F_L0()
872 auto add_overflow = b.AddWithOverflow(x, b.Int32(0)); in HWTEST_F_L0()
873 … auto add_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, add_overflow, b.Int32(0)); in HWTEST_F_L0()
874 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, add_overflow, b.Int32(1)); in HWTEST_F_L0()
876 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
887 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
888 Environment env(0, &b); in HWTEST_F_L0()
889 b.SetEnvironment(&env); in HWTEST_F_L0()
896 auto sub_overflow = b.SubWithOverflow(b.Int32(-2147483648), b.Int32(1)); in HWTEST_F_L0()
897 … auto sub_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, sub_overflow, b.Int32(0)); in HWTEST_F_L0()
898 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, sub_overflow, b.Int32(1)); in HWTEST_F_L0()
900 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(true)); in HWTEST_F_L0()
905 auto sub_overflow = b.SubWithOverflow(b.Int32(2147483647), b.Int32(1)); in HWTEST_F_L0()
906 … auto sub_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, sub_overflow, b.Int32(0)); in HWTEST_F_L0()
907 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, sub_overflow, b.Int32(1)); in HWTEST_F_L0()
909 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
915 auto x = b.Arguments(1); in HWTEST_F_L0()
916 auto sub_overflow = b.SubWithOverflow(x, b.Int32(0)); in HWTEST_F_L0()
917 … auto sub_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, sub_overflow, b.Int32(0)); in HWTEST_F_L0()
918 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, sub_overflow, b.Int32(1)); in HWTEST_F_L0()
920 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
931 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
932 Environment env(0, &b); in HWTEST_F_L0()
933 b.SetEnvironment(&env); in HWTEST_F_L0()
940 auto mul_overflow = b.MulWithOverflow(b.Int32(2147483647), b.Int32(2)); in HWTEST_F_L0()
941 … auto mul_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, mul_overflow, b.Int32(0)); in HWTEST_F_L0()
942 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, mul_overflow, b.Int32(1)); in HWTEST_F_L0()
944 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(true)); in HWTEST_F_L0()
950 auto mul_overflow = b.MulWithOverflow(b.Int32(1000), b.Int32(2)); in HWTEST_F_L0()
951 … auto mul_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, mul_overflow, b.Int32(0)); in HWTEST_F_L0()
952 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, mul_overflow, b.Int32(1)); in HWTEST_F_L0()
954 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
960 auto x = b.Arguments(1); in HWTEST_F_L0()
961 auto mul_overflow = b.MulWithOverflow(x, b.Int32(1)); in HWTEST_F_L0()
962 … auto mul_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, mul_overflow, b.Int32(0)); in HWTEST_F_L0()
963 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, mul_overflow, b.Int32(1)); in HWTEST_F_L0()
965 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
971 auto x = b.Arguments(1); in HWTEST_F_L0()
972 auto mul_overflow = b.MulWithOverflow(x, b.Int32(0)); in HWTEST_F_L0()
973 … auto mul_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, mul_overflow, b.Int32(0)); in HWTEST_F_L0()
974 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, mul_overflow, b.Int32(1)); in HWTEST_F_L0()
975 EXPECT_EQ(instcombie.VisitGate(mul_result), b.Int32(0)); in HWTEST_F_L0()
976 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
987 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
988 Environment env(0, &b); in HWTEST_F_L0()
989 b.SetEnvironment(&env); in HWTEST_F_L0()
993 auto x = b.Arguments(1); in HWTEST_F_L0()
994 auto zero = b.Int64(0); in HWTEST_F_L0()
995 auto neg_one = b.Int64(-1); in HWTEST_F_L0()
996 auto Icmp = b.Equal(x, zero); in HWTEST_F_L0()
997 auto one = b.Int64(1); in HWTEST_F_L0()
998 auto two = b.Int64(2); in HWTEST_F_L0()
999 EXPECT_EQ(instcombie.VisitGate(b.Int64And(x, zero)), zero); // x & 0 => 0 in HWTEST_F_L0()
1000 EXPECT_EQ(instcombie.VisitGate(b.Int64And(x, neg_one)), x); // x & -1 => x in HWTEST_F_L0()
1001 EXPECT_EQ(instcombie.VisitGate(b.Int64And(Icmp, one)), Icmp); // CMP & 1 => CMP in HWTEST_F_L0()
1002 EXPECT_EQ(instcombie.VisitGate(b.Int64And(two, one)), zero); // K & K => K in HWTEST_F_L0()
1003 EXPECT_EQ(instcombie.VisitGate(b.Int64And(x, x)), x); // x & x => x in HWTEST_F_L0()
1005 auto result = instcombie.VisitGate(b.Int64And(b.Int64And(x, one), two)); in HWTEST_F_L0()
1014 auto x = b.Arguments(2); in HWTEST_F_L0()
1015 auto zero = b.Int32(0); in HWTEST_F_L0()
1016 auto neg_one = b.Int32(-1); in HWTEST_F_L0()
1017 auto Icmp = b.Equal(x, zero); in HWTEST_F_L0()
1018 auto one = b.Int32(1); in HWTEST_F_L0()
1019 auto two = b.Int32(2); in HWTEST_F_L0()
1020 EXPECT_EQ(instcombie.VisitGate(b.Int32And(x, zero)), zero); // x & 0 => 0 in HWTEST_F_L0()
1021 EXPECT_EQ(instcombie.VisitGate(b.Int32And(x, neg_one)), x); // x & -1 => x in HWTEST_F_L0()
1022 EXPECT_EQ(instcombie.VisitGate(b.Int32And(Icmp, one)), Icmp); // CMP & 1 => CMP in HWTEST_F_L0()
1023 EXPECT_EQ(instcombie.VisitGate(b.Int32And(two, one)), zero); // K & K => K in HWTEST_F_L0()
1024 EXPECT_EQ(instcombie.VisitGate(b.Int32And(x, x)), x); // x & x => x in HWTEST_F_L0()
1026 auto result = instcombie.VisitGate(b.Int32And(b.Int32And(x, one), two)); in HWTEST_F_L0()
1042 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1043 Environment env(0, &b); in HWTEST_F_L0()
1044 b.SetEnvironment(&env); in HWTEST_F_L0()
1048 auto x = b.Arguments(1); in HWTEST_F_L0()
1049 auto zero = b.Int64(0); in HWTEST_F_L0()
1050 auto neg_one = b.Int64(-1); in HWTEST_F_L0()
1051 auto one = b.Int64(1); in HWTEST_F_L0()
1052 auto two = b.Int64(2); in HWTEST_F_L0()
1053 auto three = b.Int64(3); in HWTEST_F_L0()
1054 EXPECT_EQ(instcombie.VisitGate(b.Int64Or(x, zero)), x); // x | 0 => x in HWTEST_F_L0()
1055 EXPECT_EQ(instcombie.VisitGate(b.Int64Or(x, neg_one)), neg_one); // x | -1 => -1 in HWTEST_F_L0()
1056 EXPECT_EQ(instcombie.VisitGate(b.Int64Or(two, one)), three); // 2 | 1 => 3 in HWTEST_F_L0()
1057 EXPECT_EQ(instcombie.VisitGate(b.Int64Or(x, x)), x); // x | x => x in HWTEST_F_L0()
1060 … b.Int64Or(b.Int64And(x, b.Int64(-6148914691236517205L)), b.Int64(6148914691236517205L))); in HWTEST_F_L0()
1065 EXPECT_EQ(m.Right().Gate(), b.Int64(6148914691236517205L)); in HWTEST_F_L0()
1069 auto x = b.Arguments(1); in HWTEST_F_L0()
1070 auto zero = b.Int32(0); in HWTEST_F_L0()
1071 auto neg_one = b.Int32(-1); in HWTEST_F_L0()
1072 auto one = b.Int32(1); in HWTEST_F_L0()
1073 auto two = b.Int32(2); in HWTEST_F_L0()
1074 auto three = b.Int32(3); in HWTEST_F_L0()
1075 EXPECT_EQ(instcombie.VisitGate(b.Int32Or(x, zero)), x); // x | 0 => x in HWTEST_F_L0()
1076 EXPECT_EQ(instcombie.VisitGate(b.Int32Or(x, neg_one)), neg_one); // x | -1 => -1 in HWTEST_F_L0()
1077 EXPECT_EQ(instcombie.VisitGate(b.Int32Or(two, one)), three); // 2 | 1 => 3 in HWTEST_F_L0()
1078 EXPECT_EQ(instcombie.VisitGate(b.Int32Or(x, x)), x); // x | x => x in HWTEST_F_L0()
1080 …auto result = instcombie.VisitGate(b.Int32Or(b.Int32And(x, b.Int32(-1431655765)), b.Int32(14316557… in HWTEST_F_L0()
1085 EXPECT_EQ(m.Right().Gate(), b.Int32(1431655765)); in HWTEST_F_L0()
1096 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1097 Environment env(0, &b); in HWTEST_F_L0()
1098 b.SetEnvironment(&env); in HWTEST_F_L0()
1102 auto x = b.Arguments(1); in HWTEST_F_L0()
1103 auto zero = b.Int64(0); in HWTEST_F_L0()
1104 auto neg_one = b.Int64(-1); in HWTEST_F_L0()
1105 auto one = b.Int64(1); in HWTEST_F_L0()
1106 auto two = b.Int64(2); in HWTEST_F_L0()
1107 auto three = b.Int64(3); in HWTEST_F_L0()
1108 EXPECT_EQ(instcombie.VisitGate(b.Int64Xor(x, zero)), x); // x ^ 0 => x in HWTEST_F_L0()
1109 EXPECT_EQ(instcombie.VisitGate(b.Int64Xor(two, one)), three); // 2 | 1 => 3 in HWTEST_F_L0()
1110 EXPECT_EQ(instcombie.VisitGate(b.Int64Xor(x, x)), zero); // x ^ x => 0 in HWTEST_F_L0()
1112 EXPECT_EQ(instcombie.VisitGate(b.Int64Xor(b.Int64Xor(x, neg_one), neg_one)), x); in HWTEST_F_L0()
1116 auto x = b.Arguments(1); in HWTEST_F_L0()
1117 auto zero = b.Int32(0); in HWTEST_F_L0()
1118 auto neg_one = b.Int32(-1); in HWTEST_F_L0()
1119 auto one = b.Int32(1); in HWTEST_F_L0()
1120 auto two = b.Int32(2); in HWTEST_F_L0()
1121 auto three = b.Int32(3); in HWTEST_F_L0()
1122 EXPECT_EQ(instcombie.VisitGate(b.Int32Xor(x, zero)), x); // x ^ 0 => x in HWTEST_F_L0()
1123 EXPECT_EQ(instcombie.VisitGate(b.Int32Xor(two, one)), three); // 2 | 1 => 3 in HWTEST_F_L0()
1124 EXPECT_EQ(instcombie.VisitGate(b.Int32Xor(x, x)), zero); // x ^ x => 0 in HWTEST_F_L0()
1126 EXPECT_EQ(instcombie.VisitGate(b.Int32Xor(b.Int32Xor(x, neg_one), neg_one)), x); in HWTEST_F_L0()
1137 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1138 Environment env(0, &b); in HWTEST_F_L0()
1139 b.SetEnvironment(&env); in HWTEST_F_L0()
1144 auto x = b.Arguments(1); in HWTEST_F_L0()
1145 auto zero = b.Int64(0); in HWTEST_F_L0()
1146 auto two = b.Int64(2); in HWTEST_F_L0()
1147 EXPECT_EQ(instcombie.VisitGate(b.Int64LSR(x, zero)), x); // x >>> 0 => x in HWTEST_F_L0()
1150 … EXPECT_EQ(instcombie.VisitGate(b.Int64LSR(b.Int64(-8), two)), b.Int64(4611686018427387902u)); in HWTEST_F_L0()
1151 EXPECT_EQ(instcombie.VisitGate(b.Int64LSR(b.Int64(8), two)), b.Int64(2)); in HWTEST_F_L0()
1155 auto x = b.Arguments(1); in HWTEST_F_L0()
1156 auto zero = b.Int32(0); in HWTEST_F_L0()
1157 auto two = b.Int32(2); in HWTEST_F_L0()
1158 EXPECT_EQ(instcombie.VisitGate(b.Int32LSR(x, zero)), x); // x >>> 0 => x in HWTEST_F_L0()
1161 EXPECT_EQ(instcombie.VisitGate(b.Int32LSR(b.Int32(-8), two)), b.Int32(1073741822u)); in HWTEST_F_L0()
1162 EXPECT_EQ(instcombie.VisitGate(b.Int32LSR(b.Int32(8), two)), b.Int32(2)); in HWTEST_F_L0()
1164 … EXPECT_EQ(instcombie.VisitGate(b.Int32LSR(b.Int32And(x, b.Int32(1023)), b.Int32(10))), zero); in HWTEST_F_L0()
1175 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1176 Environment env(0, &b); in HWTEST_F_L0()
1177 b.SetEnvironment(&env); in HWTEST_F_L0()
1181 auto x = b.Arguments(1); in HWTEST_F_L0()
1182 auto zero = b.Int64(0); in HWTEST_F_L0()
1183 auto two = b.Int64(2); in HWTEST_F_L0()
1185 EXPECT_EQ(instcombie.VisitGate(b.Int64ASR(x, zero)), x); in HWTEST_F_L0()
1188 EXPECT_EQ(instcombie.VisitGate(b.Int64ASR(b.Int64(-8), two)), b.Int64(-2)); in HWTEST_F_L0()
1189 EXPECT_EQ(instcombie.VisitGate(b.Int64ASR(b.Int64(8), two)), b.Int64(2)); in HWTEST_F_L0()
1192 auto x = b.Arguments(1); in HWTEST_F_L0()
1193 auto zero = b.Int32(0); in HWTEST_F_L0()
1194 auto two = b.Int32(2); in HWTEST_F_L0()
1196 EXPECT_EQ(instcombie.VisitGate(b.Int32ASR(x, zero)), x); in HWTEST_F_L0()
1199 EXPECT_EQ(instcombie.VisitGate(b.Int32ASR(b.Int32(-8), two)), b.Int32(-2)); in HWTEST_F_L0()
1200 EXPECT_EQ(instcombie.VisitGate(b.Int32ASR(b.Int32(8), two)), b.Int32(2)); in HWTEST_F_L0()
1211 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1212 Environment env(0, &b); in HWTEST_F_L0()
1213 b.SetEnvironment(&env); in HWTEST_F_L0()
1217 auto x = b.Arguments(1); in HWTEST_F_L0()
1218 auto zero = b.Int64(0); in HWTEST_F_L0()
1219 auto two = b.Int64(2); in HWTEST_F_L0()
1221 EXPECT_EQ(instcombie.VisitGate(b.Int64LSL(x, zero)), x); in HWTEST_F_L0()
1223 EXPECT_EQ(instcombie.VisitGate(b.Int64LSL(b.Int64(1), two)), b.Int64(4)); in HWTEST_F_L0()
1226 auto x = b.Arguments(1); in HWTEST_F_L0()
1227 auto zero = b.Int32(0); in HWTEST_F_L0()
1228 auto two = b.Int32(2); in HWTEST_F_L0()
1230 EXPECT_EQ(instcombie.VisitGate(b.Int32LSL(x, zero)), x); in HWTEST_F_L0()
1232 EXPECT_EQ(instcombie.VisitGate(b.Int32LSL(b.Int32(1), two)), b.Int32(4)); in HWTEST_F_L0()
1243 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1244 Environment env(0, &b); in HWTEST_F_L0()
1245 b.SetEnvironment(&env); in HWTEST_F_L0()
1251 auto x = b.Arguments(1); in HWTEST_F_L0()
1252 auto constant1 = b.Int64(5); in HWTEST_F_L0()
1253 auto constant2 = b.Int64(10); in HWTEST_F_L0()
1254 auto result = instcombie.VisitGate(b.Equal(b.Int64Or(x, constant1), constant2)); in HWTEST_F_L0()
1255 EXPECT_EQ(result, b.False()); in HWTEST_F_L0()
1260 auto x = b.Arguments(1); in HWTEST_F_L0()
1261 auto constant1 = b.Int64(5); in HWTEST_F_L0()
1262 auto constant2 = b.Int64(10); in HWTEST_F_L0()
1263 …auto result = instcombie.VisitGate(b.Equal(b.Int64ToTaggedPtr(b.Int64Or(x, constant1)), constant2)… in HWTEST_F_L0()
1264 EXPECT_EQ(result, b.False()); in HWTEST_F_L0()
1268 auto x = b.Arguments(1); in HWTEST_F_L0()
1269 auto constant1 = b.Int64(15); in HWTEST_F_L0()
1270 auto constant2 = b.Int64(7); in HWTEST_F_L0()
1271 auto zero = b.Int64(0); in HWTEST_F_L0()
1272 … auto result = instcombie.VisitGate(b.Equal(b.Int64And(b.Int64Or(x, constant1), constant2), zero)); in HWTEST_F_L0()
1273 EXPECT_EQ(result, b.False()); in HWTEST_F_L0()
1284 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1285 Environment env(0, &b); in HWTEST_F_L0()
1286 b.SetEnvironment(&env); in HWTEST_F_L0()
1290 auto x = b.Arguments(1); in HWTEST_F_L0()
1291 EXPECT_EQ(instcombie.VisitGate(b.ChangeFloat64ToInt32(b.ChangeInt32ToFloat64(x))), x); in HWTEST_F_L0()
1294 auto x = b.Arguments(2); in HWTEST_F_L0()
1295 EXPECT_NE(instcombie.VisitGate(b.ChangeInt32ToFloat64(b.ChangeFloat64ToInt32(x))), x); in HWTEST_F_L0()
1298 auto x = b.Arguments(3); in HWTEST_F_L0()
1299 EXPECT_NE(instcombie.VisitGate(b.Int64ToTaggedPtr(b.ChangeTaggedPointerToInt64(x))), x); in HWTEST_F_L0()