aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/compiler/xla/service/hlo_instruction_test.cc
diff options
context:
space:
mode:
authorGravatar Mingxing Tan <tanmingxing@google.com>2018-06-28 19:13:20 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-06-28 19:16:41 -0700
commit1e7b0e4ad6d0f57f3241fe0b80a65f2c2a7f11b0 (patch)
treeaf92d172cedfc41e544c01a349c1d3b30bc3ff85 /tensorflow/compiler/xla/service/hlo_instruction_test.cc
parent3cee10e61c1c90734317c62ea3388ec44acc8d08 (diff)
Merge changes from github.
PiperOrigin-RevId: 202585094
Diffstat (limited to 'tensorflow/compiler/xla/service/hlo_instruction_test.cc')
-rw-r--r--tensorflow/compiler/xla/service/hlo_instruction_test.cc34
1 files changed, 34 insertions, 0 deletions
diff --git a/tensorflow/compiler/xla/service/hlo_instruction_test.cc b/tensorflow/compiler/xla/service/hlo_instruction_test.cc
index e1c5123774..d8ca99dfd1 100644
--- a/tensorflow/compiler/xla/service/hlo_instruction_test.cc
+++ b/tensorflow/compiler/xla/service/hlo_instruction_test.cc
@@ -924,6 +924,40 @@ TEST_F(HloInstructionTest, IdenticalInstructions) {
*HloInstruction::CreateBinary(shape, HloOpcode::kDivide, op1, op2)));
}
+TEST_F(HloInstructionTest, IdenticalCallInstructions) {
+ const char* const hlo_string = R"(
+HloModule Module
+
+subcomp1 (x: f32[]) -> f32[] {
+ x = f32[] parameter(0)
+ ROOT n = f32[] sine(x)
+}
+
+subcomp2 (x: f32[]) -> f32[] {
+ x = f32[] parameter(0)
+ ROOT n = f32[] cosine(x)
+}
+
+ENTRY entry (param: f32[]) -> (f32[], f32[], f32[]) {
+ p = f32[] parameter(0)
+ t1 = f32[] call(p), to_apply=subcomp1
+ t2 = f32[] call(p), to_apply=subcomp1
+ t3 = f32[] call(p), to_apply=subcomp2
+ ROOT t = (f32[], f32[], f32[]) tuple(t1, t2, t3)
+ }
+)";
+ TF_ASSERT_OK_AND_ASSIGN(std::unique_ptr<HloModule> module,
+ ParseHloString(hlo_string));
+
+ auto* root = module->entry_computation()->root_instruction();
+ auto* t1 = root->operand(0);
+ auto* t2 = root->operand(1);
+ auto* t3 = root->operand(2);
+
+ EXPECT_TRUE(StructuralEqual(*t1, *t2));
+ EXPECT_FALSE(StructuralEqual(*t1, *t3));
+}
+
TEST_F(HloInstructionTest, FunctionVisitor) {
// Verify the function visitor HloInstruction::Accept visits all instructions
// from a root properly given the following graph: