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()
638 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
639 Environment env(0, &b); in HWTEST_F_L0()
640 b.SetEnvironment(&env); in HWTEST_F_L0()
646 auto x = b.Arguments(1); in HWTEST_F_L0()
647 auto const_0 = b.Int32(0); in HWTEST_F_L0()
648 auto result = b.Int32Div(const_0, x); in HWTEST_F_L0()
655 auto x = b.Arguments(1); in HWTEST_F_L0()
656 auto const_0 = b.Int32(0); in HWTEST_F_L0()
657 auto result = b.Int32Div(x, const_0); in HWTEST_F_L0()
663 auto x = b.Arguments(1); in HWTEST_F_L0()
664 auto const_1 = b.Int32(1); in HWTEST_F_L0()
665 auto result = b.Int32Div(x, const_1); in HWTEST_F_L0()
671 auto const_4 = b.Int32(4); in HWTEST_F_L0()
672 auto const_2 = b.Int32(2); in HWTEST_F_L0()
673 auto result = instcombie.VisitGate(b.Int32Div(const_4, const_2)); in HWTEST_F_L0()
681 auto x = b.Arguments(2); in HWTEST_F_L0()
682 auto result = instcombie.VisitGate(b.Int32Div(x, b.Int32(-1))); in HWTEST_F_L0()
693 auto x = b.Arguments(2); in HWTEST_F_L0()
694 auto result = instcombie.VisitGate(b.Int32Div(x, b.Int32(-5))); in HWTEST_F_L0()
715 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
716 Environment env(0, &b); in HWTEST_F_L0()
717 b.SetEnvironment(&env); in HWTEST_F_L0()
723 auto x = b.Arguments(1); in HWTEST_F_L0()
724 auto nan = b.NanValue(); in HWTEST_F_L0()
725 auto zero = b.Double(0); in HWTEST_F_L0()
730 EXPECT_EQ(instcombie.VisitGate(b.DoubleAdd(x, nan)), nan); in HWTEST_F_L0()
731 EXPECT_EQ(instcombie.VisitGate(b.DoubleSub(x, nan)), nan); in HWTEST_F_L0()
732 EXPECT_EQ(instcombie.VisitGate(b.DoubleMul(x, nan)), nan); in HWTEST_F_L0()
733 EXPECT_EQ(instcombie.VisitGate(b.DoubleDiv(x, nan)), nan); in HWTEST_F_L0()
735 EXPECT_EQ(instcombie.VisitGate(b.DoubleMod(x, zero)), nan); in HWTEST_F_L0()
739 auto x = b.Arguments(1); in HWTEST_F_L0()
740 auto nan = b.NanValue(); in HWTEST_F_L0()
741 EXPECT_EQ(instcombie.VisitGate(b.DoubleAdd(nan, x)), nan); in HWTEST_F_L0()
742 EXPECT_EQ(instcombie.VisitGate(b.DoubleSub(nan, x)), nan); in HWTEST_F_L0()
743 EXPECT_EQ(instcombie.VisitGate(b.DoubleDiv(nan, x)), nan); in HWTEST_F_L0()
744 EXPECT_EQ(instcombie.VisitGate(b.DoubleMod(nan, x)), nan); in HWTEST_F_L0()
749 auto value1 = b.Double(10.1); in HWTEST_F_L0()
750 auto value2 = b.Double(5.2); in HWTEST_F_L0()
751 auto result = instcombie.VisitGate(b.DoubleAdd(value1, value2)); in HWTEST_F_L0()
755 result = instcombie.VisitGate(b.DoubleAdd(value1, value2)); in HWTEST_F_L0()
759 result = instcombie.VisitGate(b.DoubleSub(value1, value2)); in HWTEST_F_L0()
763 result = instcombie.VisitGate(b.DoubleDiv(value1, value2)); in HWTEST_F_L0()
770 auto x = b.Arguments(1); in HWTEST_F_L0()
771 auto neg_one = b.Double(-1); in HWTEST_F_L0()
772 auto result = instcombie.VisitGate(b.DoubleMul(x, neg_one)); in HWTEST_F_L0()
783 auto x = b.Arguments(1); in HWTEST_F_L0()
784 auto two = b.Double(2.0); in HWTEST_F_L0()
785 auto result = instcombie.VisitGate(b.DoubleMul(x, two)); in HWTEST_F_L0()
800 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
801 Environment env(0, &b); in HWTEST_F_L0()
802 b.SetEnvironment(&env); in HWTEST_F_L0()
806 auto x = b.Arguments(1); in HWTEST_F_L0()
807 auto zero = b.Int32(0); in HWTEST_F_L0()
808 auto one = b.Int32(1); in HWTEST_F_L0()
809 auto neg_one = b.Int32(-1); in HWTEST_F_L0()
810 auto four = b.Int32(4); in HWTEST_F_L0()
811 auto two = b.Int32(2); in HWTEST_F_L0()
818 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(x, zero)), zero); in HWTEST_F_L0()
819 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(zero, x)), zero); in HWTEST_F_L0()
820 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(x, one)), zero); in HWTEST_F_L0()
821 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(x, neg_one)), zero); in HWTEST_F_L0()
822 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(x, x)), zero); in HWTEST_F_L0()
824 EXPECT_EQ(instcombie.VisitGate(b.Int32Mod(two, four)), two); in HWTEST_F_L0()
835 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
836 Environment env(0, &b); in HWTEST_F_L0()
837 b.SetEnvironment(&env); in HWTEST_F_L0()
844 auto add_overflow = b.AddWithOverflow(b.Int32(2147483647), b.Int32(1)); in HWTEST_F_L0()
845 … auto add_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, add_overflow, b.Int32(0)); in HWTEST_F_L0()
846 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, add_overflow, b.Int32(1)); in HWTEST_F_L0()
848 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(true)); in HWTEST_F_L0()
853 auto add_overflow = b.AddWithOverflow(b.Int32(2147483646), b.Int32(1)); in HWTEST_F_L0()
854 … auto add_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, add_overflow, b.Int32(0)); in HWTEST_F_L0()
855 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, add_overflow, b.Int32(1)); in HWTEST_F_L0()
857 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
864 auto x = b.Arguments(1); in HWTEST_F_L0()
865 auto add_overflow = b.AddWithOverflow(x, b.Int32(0)); in HWTEST_F_L0()
866 … auto add_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, add_overflow, b.Int32(0)); in HWTEST_F_L0()
867 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, add_overflow, b.Int32(1)); in HWTEST_F_L0()
869 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
880 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
881 Environment env(0, &b); in HWTEST_F_L0()
882 b.SetEnvironment(&env); in HWTEST_F_L0()
889 auto sub_overflow = b.SubWithOverflow(b.Int32(-2147483648), b.Int32(1)); in HWTEST_F_L0()
890 … auto sub_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, sub_overflow, b.Int32(0)); in HWTEST_F_L0()
891 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, sub_overflow, b.Int32(1)); in HWTEST_F_L0()
893 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(true)); in HWTEST_F_L0()
898 auto sub_overflow = b.SubWithOverflow(b.Int32(2147483647), b.Int32(1)); in HWTEST_F_L0()
899 … auto sub_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, sub_overflow, b.Int32(0)); in HWTEST_F_L0()
900 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, sub_overflow, b.Int32(1)); in HWTEST_F_L0()
902 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
908 auto x = b.Arguments(1); in HWTEST_F_L0()
909 auto sub_overflow = b.SubWithOverflow(x, b.Int32(0)); in HWTEST_F_L0()
910 … auto sub_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, sub_overflow, b.Int32(0)); in HWTEST_F_L0()
911 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, sub_overflow, b.Int32(1)); in HWTEST_F_L0()
913 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
924 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
925 Environment env(0, &b); in HWTEST_F_L0()
926 b.SetEnvironment(&env); in HWTEST_F_L0()
933 auto mul_overflow = b.MulWithOverflow(b.Int32(2147483647), b.Int32(2)); in HWTEST_F_L0()
934 … auto mul_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, mul_overflow, b.Int32(0)); in HWTEST_F_L0()
935 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, mul_overflow, b.Int32(1)); in HWTEST_F_L0()
937 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(true)); in HWTEST_F_L0()
943 auto mul_overflow = b.MulWithOverflow(b.Int32(1000), b.Int32(2)); in HWTEST_F_L0()
944 … auto mul_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, mul_overflow, b.Int32(0)); in HWTEST_F_L0()
945 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, mul_overflow, b.Int32(1)); in HWTEST_F_L0()
947 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
953 auto x = b.Arguments(1); in HWTEST_F_L0()
954 auto mul_overflow = b.MulWithOverflow(x, b.Int32(1)); in HWTEST_F_L0()
955 … auto mul_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, mul_overflow, b.Int32(0)); in HWTEST_F_L0()
956 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, mul_overflow, b.Int32(1)); in HWTEST_F_L0()
958 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
964 auto x = b.Arguments(1); in HWTEST_F_L0()
965 auto mul_overflow = b.MulWithOverflow(x, b.Int32(0)); in HWTEST_F_L0()
966 … auto mul_result = b.ExtractValue(ecmascript::kungfu::MachineType::I32, mul_overflow, b.Int32(0)); in HWTEST_F_L0()
967 … auto is_over = b.ExtractValue(ecmascript::kungfu::MachineType::I1, mul_overflow, b.Int32(1)); in HWTEST_F_L0()
968 EXPECT_EQ(instcombie.VisitGate(mul_result), b.Int32(0)); in HWTEST_F_L0()
969 EXPECT_EQ(instcombie.VisitGate(is_over), b.Boolean(false)); in HWTEST_F_L0()
980 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
981 Environment env(0, &b); in HWTEST_F_L0()
982 b.SetEnvironment(&env); in HWTEST_F_L0()
986 auto x = b.Arguments(1); in HWTEST_F_L0()
987 auto zero = b.Int64(0); in HWTEST_F_L0()
988 auto neg_one = b.Int64(-1); in HWTEST_F_L0()
989 auto Icmp = b.Equal(x, zero); in HWTEST_F_L0()
990 auto one = b.Int64(1); in HWTEST_F_L0()
991 auto two = b.Int64(2); in HWTEST_F_L0()
992 EXPECT_EQ(instcombie.VisitGate(b.Int64And(x, zero)), zero); // x & 0 => 0 in HWTEST_F_L0()
993 EXPECT_EQ(instcombie.VisitGate(b.Int64And(x, neg_one)), x); // x & -1 => x in HWTEST_F_L0()
994 EXPECT_EQ(instcombie.VisitGate(b.Int64And(Icmp, one)), Icmp); // CMP & 1 => CMP in HWTEST_F_L0()
995 EXPECT_EQ(instcombie.VisitGate(b.Int64And(two, one)), zero); // K & K => K in HWTEST_F_L0()
996 EXPECT_EQ(instcombie.VisitGate(b.Int64And(x, x)), x); // x & x => x in HWTEST_F_L0()
998 auto result = instcombie.VisitGate(b.Int64And(b.Int64And(x, one), two)); in HWTEST_F_L0()
1007 auto x = b.Arguments(2); in HWTEST_F_L0()
1008 auto zero = b.Int32(0); in HWTEST_F_L0()
1009 auto neg_one = b.Int32(-1); in HWTEST_F_L0()
1010 auto Icmp = b.Equal(x, zero); in HWTEST_F_L0()
1011 auto one = b.Int32(1); in HWTEST_F_L0()
1012 auto two = b.Int32(2); in HWTEST_F_L0()
1013 EXPECT_EQ(instcombie.VisitGate(b.Int32And(x, zero)), zero); // x & 0 => 0 in HWTEST_F_L0()
1014 EXPECT_EQ(instcombie.VisitGate(b.Int32And(x, neg_one)), x); // x & -1 => x in HWTEST_F_L0()
1015 EXPECT_EQ(instcombie.VisitGate(b.Int32And(Icmp, one)), Icmp); // CMP & 1 => CMP in HWTEST_F_L0()
1016 EXPECT_EQ(instcombie.VisitGate(b.Int32And(two, one)), zero); // K & K => K in HWTEST_F_L0()
1017 EXPECT_EQ(instcombie.VisitGate(b.Int32And(x, x)), x); // x & x => x in HWTEST_F_L0()
1019 auto result = instcombie.VisitGate(b.Int32And(b.Int32And(x, one), two)); in HWTEST_F_L0()
1035 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1036 Environment env(0, &b); in HWTEST_F_L0()
1037 b.SetEnvironment(&env); in HWTEST_F_L0()
1041 auto x = b.Arguments(1); in HWTEST_F_L0()
1042 auto zero = b.Int64(0); in HWTEST_F_L0()
1043 auto neg_one = b.Int64(-1); in HWTEST_F_L0()
1044 auto one = b.Int64(1); in HWTEST_F_L0()
1045 auto two = b.Int64(2); in HWTEST_F_L0()
1046 auto three = b.Int64(3); in HWTEST_F_L0()
1047 EXPECT_EQ(instcombie.VisitGate(b.Int64Or(x, zero)), x); // x | 0 => x in HWTEST_F_L0()
1048 EXPECT_EQ(instcombie.VisitGate(b.Int64Or(x, neg_one)), neg_one); // x | -1 => -1 in HWTEST_F_L0()
1049 EXPECT_EQ(instcombie.VisitGate(b.Int64Or(two, one)), three); // 2 | 1 => 3 in HWTEST_F_L0()
1050 EXPECT_EQ(instcombie.VisitGate(b.Int64Or(x, x)), x); // x | x => x in HWTEST_F_L0()
1053 … b.Int64Or(b.Int64And(x, b.Int64(-6148914691236517205L)), b.Int64(6148914691236517205L))); in HWTEST_F_L0()
1058 EXPECT_EQ(m.Right().Gate(), b.Int64(6148914691236517205L)); in HWTEST_F_L0()
1062 auto x = b.Arguments(1); in HWTEST_F_L0()
1063 auto zero = b.Int32(0); in HWTEST_F_L0()
1064 auto neg_one = b.Int32(-1); in HWTEST_F_L0()
1065 auto one = b.Int32(1); in HWTEST_F_L0()
1066 auto two = b.Int32(2); in HWTEST_F_L0()
1067 auto three = b.Int32(3); in HWTEST_F_L0()
1068 EXPECT_EQ(instcombie.VisitGate(b.Int32Or(x, zero)), x); // x | 0 => x in HWTEST_F_L0()
1069 EXPECT_EQ(instcombie.VisitGate(b.Int32Or(x, neg_one)), neg_one); // x | -1 => -1 in HWTEST_F_L0()
1070 EXPECT_EQ(instcombie.VisitGate(b.Int32Or(two, one)), three); // 2 | 1 => 3 in HWTEST_F_L0()
1071 EXPECT_EQ(instcombie.VisitGate(b.Int32Or(x, x)), x); // x | x => x in HWTEST_F_L0()
1073 …auto result = instcombie.VisitGate(b.Int32Or(b.Int32And(x, b.Int32(-1431655765)), b.Int32(14316557… in HWTEST_F_L0()
1078 EXPECT_EQ(m.Right().Gate(), b.Int32(1431655765)); in HWTEST_F_L0()
1089 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1090 Environment env(0, &b); in HWTEST_F_L0()
1091 b.SetEnvironment(&env); in HWTEST_F_L0()
1095 auto x = b.Arguments(1); in HWTEST_F_L0()
1096 auto zero = b.Int64(0); in HWTEST_F_L0()
1097 auto neg_one = b.Int64(-1); in HWTEST_F_L0()
1098 auto one = b.Int64(1); in HWTEST_F_L0()
1099 auto two = b.Int64(2); in HWTEST_F_L0()
1100 auto three = b.Int64(3); in HWTEST_F_L0()
1101 EXPECT_EQ(instcombie.VisitGate(b.Int64Xor(x, zero)), x); // x ^ 0 => x in HWTEST_F_L0()
1102 EXPECT_EQ(instcombie.VisitGate(b.Int64Xor(two, one)), three); // 2 | 1 => 3 in HWTEST_F_L0()
1103 EXPECT_EQ(instcombie.VisitGate(b.Int64Xor(x, x)), zero); // x ^ x => 0 in HWTEST_F_L0()
1105 EXPECT_EQ(instcombie.VisitGate(b.Int64Xor(b.Int64Xor(x, neg_one), neg_one)), x); in HWTEST_F_L0()
1109 auto x = b.Arguments(1); in HWTEST_F_L0()
1110 auto zero = b.Int32(0); in HWTEST_F_L0()
1111 auto neg_one = b.Int32(-1); in HWTEST_F_L0()
1112 auto one = b.Int32(1); in HWTEST_F_L0()
1113 auto two = b.Int32(2); in HWTEST_F_L0()
1114 auto three = b.Int32(3); in HWTEST_F_L0()
1115 EXPECT_EQ(instcombie.VisitGate(b.Int32Xor(x, zero)), x); // x ^ 0 => x in HWTEST_F_L0()
1116 EXPECT_EQ(instcombie.VisitGate(b.Int32Xor(two, one)), three); // 2 | 1 => 3 in HWTEST_F_L0()
1117 EXPECT_EQ(instcombie.VisitGate(b.Int32Xor(x, x)), zero); // x ^ x => 0 in HWTEST_F_L0()
1119 EXPECT_EQ(instcombie.VisitGate(b.Int32Xor(b.Int32Xor(x, neg_one), neg_one)), x); in HWTEST_F_L0()
1130 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1131 Environment env(0, &b); in HWTEST_F_L0()
1132 b.SetEnvironment(&env); in HWTEST_F_L0()
1137 auto x = b.Arguments(1); in HWTEST_F_L0()
1138 auto zero = b.Int64(0); in HWTEST_F_L0()
1139 auto two = b.Int64(2); in HWTEST_F_L0()
1140 EXPECT_EQ(instcombie.VisitGate(b.Int64LSR(x, zero)), x); // x >>> 0 => x in HWTEST_F_L0()
1143 … EXPECT_EQ(instcombie.VisitGate(b.Int64LSR(b.Int64(-8), two)), b.Int64(4611686018427387902u)); in HWTEST_F_L0()
1144 EXPECT_EQ(instcombie.VisitGate(b.Int64LSR(b.Int64(8), two)), b.Int64(2)); in HWTEST_F_L0()
1148 auto x = b.Arguments(1); in HWTEST_F_L0()
1149 auto zero = b.Int32(0); in HWTEST_F_L0()
1150 auto two = b.Int32(2); in HWTEST_F_L0()
1151 EXPECT_EQ(instcombie.VisitGate(b.Int32LSR(x, zero)), x); // x >>> 0 => x in HWTEST_F_L0()
1154 EXPECT_EQ(instcombie.VisitGate(b.Int32LSR(b.Int32(-8), two)), b.Int32(1073741822u)); in HWTEST_F_L0()
1155 EXPECT_EQ(instcombie.VisitGate(b.Int32LSR(b.Int32(8), two)), b.Int32(2)); in HWTEST_F_L0()
1157 … EXPECT_EQ(instcombie.VisitGate(b.Int32LSR(b.Int32And(x, b.Int32(1023)), b.Int32(10))), zero); in HWTEST_F_L0()
1168 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1169 Environment env(0, &b); in HWTEST_F_L0()
1170 b.SetEnvironment(&env); in HWTEST_F_L0()
1174 auto x = b.Arguments(1); in HWTEST_F_L0()
1175 auto zero = b.Int64(0); in HWTEST_F_L0()
1176 auto two = b.Int64(2); in HWTEST_F_L0()
1178 EXPECT_EQ(instcombie.VisitGate(b.Int64ASR(x, zero)), x); in HWTEST_F_L0()
1181 EXPECT_EQ(instcombie.VisitGate(b.Int64ASR(b.Int64(-8), two)), b.Int64(-2)); in HWTEST_F_L0()
1182 EXPECT_EQ(instcombie.VisitGate(b.Int64ASR(b.Int64(8), two)), b.Int64(2)); in HWTEST_F_L0()
1185 auto x = b.Arguments(1); in HWTEST_F_L0()
1186 auto zero = b.Int32(0); in HWTEST_F_L0()
1187 auto two = b.Int32(2); in HWTEST_F_L0()
1189 EXPECT_EQ(instcombie.VisitGate(b.Int32ASR(x, zero)), x); in HWTEST_F_L0()
1192 EXPECT_EQ(instcombie.VisitGate(b.Int32ASR(b.Int32(-8), two)), b.Int32(-2)); in HWTEST_F_L0()
1193 EXPECT_EQ(instcombie.VisitGate(b.Int32ASR(b.Int32(8), two)), b.Int32(2)); in HWTEST_F_L0()
1204 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1205 Environment env(0, &b); in HWTEST_F_L0()
1206 b.SetEnvironment(&env); in HWTEST_F_L0()
1210 auto x = b.Arguments(1); in HWTEST_F_L0()
1211 auto zero = b.Int64(0); in HWTEST_F_L0()
1212 auto two = b.Int64(2); in HWTEST_F_L0()
1214 EXPECT_EQ(instcombie.VisitGate(b.Int64LSL(x, zero)), x); in HWTEST_F_L0()
1216 EXPECT_EQ(instcombie.VisitGate(b.Int64LSL(b.Int64(1), two)), b.Int64(4)); in HWTEST_F_L0()
1219 auto x = b.Arguments(1); in HWTEST_F_L0()
1220 auto zero = b.Int32(0); in HWTEST_F_L0()
1221 auto two = b.Int32(2); in HWTEST_F_L0()
1223 EXPECT_EQ(instcombie.VisitGate(b.Int32LSL(x, zero)), x); in HWTEST_F_L0()
1225 EXPECT_EQ(instcombie.VisitGate(b.Int32LSL(b.Int32(1), two)), b.Int32(4)); in HWTEST_F_L0()
1236 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1237 Environment env(0, &b); in HWTEST_F_L0()
1238 b.SetEnvironment(&env); in HWTEST_F_L0()
1244 auto x = b.Arguments(1); in HWTEST_F_L0()
1245 auto constant1 = b.Int64(5); in HWTEST_F_L0()
1246 auto constant2 = b.Int64(10); in HWTEST_F_L0()
1247 auto result = instcombie.VisitGate(b.Equal(b.Int64Or(x, constant1), constant2)); in HWTEST_F_L0()
1248 EXPECT_EQ(result, b.False()); in HWTEST_F_L0()
1253 auto x = b.Arguments(1); in HWTEST_F_L0()
1254 auto constant1 = b.Int64(5); in HWTEST_F_L0()
1255 auto constant2 = b.Int64(10); in HWTEST_F_L0()
1256 …auto result = instcombie.VisitGate(b.Equal(b.Int64ToTaggedPtr(b.Int64Or(x, constant1)), constant2)… in HWTEST_F_L0()
1257 EXPECT_EQ(result, b.False()); in HWTEST_F_L0()
1261 auto x = b.Arguments(1); in HWTEST_F_L0()
1262 auto constant1 = b.Int64(15); in HWTEST_F_L0()
1263 auto constant2 = b.Int64(7); in HWTEST_F_L0()
1264 auto zero = b.Int64(0); in HWTEST_F_L0()
1265 … auto result = instcombie.VisitGate(b.Equal(b.Int64And(b.Int64Or(x, constant1), constant2), zero)); in HWTEST_F_L0()
1266 EXPECT_EQ(result, b.False()); in HWTEST_F_L0()
1277 CircuitBuilder b(&circuit); in HWTEST_F_L0() local
1278 Environment env(0, &b); in HWTEST_F_L0()
1279 b.SetEnvironment(&env); in HWTEST_F_L0()
1283 auto x = b.Arguments(1); in HWTEST_F_L0()
1284 EXPECT_EQ(instcombie.VisitGate(b.ChangeFloat64ToInt32(b.ChangeInt32ToFloat64(x))), x); in HWTEST_F_L0()
1287 auto x = b.Arguments(2); in HWTEST_F_L0()
1288 EXPECT_NE(instcombie.VisitGate(b.ChangeInt32ToFloat64(b.ChangeFloat64ToInt32(x))), x); in HWTEST_F_L0()
1291 auto x = b.Arguments(3); in HWTEST_F_L0()
1292 EXPECT_NE(instcombie.VisitGate(b.Int64ToTaggedPtr(b.ChangeTaggedPointerToInt64(x))), x); in HWTEST_F_L0()